diff --git a/src/main.cc b/src/main.cc index c71f48359201e725bae030001c03d71626f681fc..91c48eb1fdf90b2ba899fbd94ff0bf6991e727e8 100644 --- a/src/main.cc +++ b/src/main.cc @@ -35,6 +35,8 @@ This file is part of the QGROUNDCONTROL project #include "QGCApplication.h" +#define SINGLE_INSTANCE_PORT 14499 + #ifndef __mobile__ #include "QGCSerialPortInfo.h" #endif @@ -119,6 +121,16 @@ jint JNI_OnLoad(JavaVM* vm, void* reserved) int main(int argc, char *argv[]) { +#ifndef __mobile__ + //-- Test for another instance already running. If that's the case, we simply exit. + QHostAddress host("127.0.0.1"); + QUdpSocket socket; + if(!socket.bind(host, SINGLE_INSTANCE_PORT, QAbstractSocket::DontShareAddress)) { + qWarning() << "Another instance already running. Exiting."; + exit(-1); + } +#endif + #ifdef Q_OS_MAC #ifndef __ios__ // Prevent Apple's app nap from screwing us over