diff options
-rw-r--r-- | singleapplication.cpp | 17 | ||||
-rw-r--r-- | singleapplication_p.h | 3 |
2 files changed, 1 insertions, 19 deletions
diff --git a/singleapplication.cpp b/singleapplication.cpp index 31e3f0f..54c2c2d 100644 --- a/singleapplication.cpp +++ b/singleapplication.cpp @@ -220,15 +220,6 @@ void SingleApplicationPrivate::connectToPrimary( int msecs, char connectionType #ifdef Q_OS_UNIX void SingleApplicationPrivate::crashHandler() { - // This guarantees the program will work even with multiple - // instances of SingleApplication in different threads. - // Which in my opinion is idiotic, but lets handle that too. - { - sharedMemMutex.lock(); - sharedMem.append( this ); - sharedMemMutex.unlock(); - } - // Handle any further termination signals to ensure the // QSharedMemory block is deleted even if the process crashes signal( SIGHUP, SingleApplicationPrivate::terminate ); // 1 @@ -249,15 +240,9 @@ void SingleApplicationPrivate::connectToPrimary( int msecs, char connectionType void SingleApplicationPrivate::terminate( int signum ) { - while( ! sharedMem.empty() ) { - delete sharedMem.back(); - sharedMem.pop_back(); - } + delete ((SingleApplication*)QApplication::instance())->d_ptr; ::exit( 128 + signum ); } - - QList<SingleApplicationPrivate*> SingleApplicationPrivate::sharedMem; - QMutex SingleApplicationPrivate::sharedMemMutex; #endif /** diff --git a/singleapplication_p.h b/singleapplication_p.h index 266cbea..833e731 100644 --- a/singleapplication_p.h +++ b/singleapplication_p.h @@ -32,7 +32,6 @@ #ifndef SINGLEAPPLICATION_P_H #define SINGLEAPPLICATION_P_H -#include <QtCore/QMutex> #include <QtCore/QSharedMemory> #include <QtNetwork/QLocalServer> #include <QtNetwork/QLocalSocket> @@ -59,8 +58,6 @@ public: #ifdef Q_OS_UNIX void crashHandler(); static void terminate( int signum ); - static QList<SingleApplicationPrivate*> sharedMem; - static QMutex sharedMemMutex; #endif QSharedMemory *memory; |