From c2a6faca68379e02dead9d6303e29fe1b9960994 Mon Sep 17 00:00:00 2001 From: Itay Grudev Date: Sun, 23 Apr 2017 14:31:32 +0300 Subject: Removed QMutex for thread safe behaviour and support for multiple SingleApplication instances Problem raised by @retmas in #24 --- singleapplication.cpp | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) (limited to 'singleapplication.cpp') 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::sharedMem; - QMutex SingleApplicationPrivate::sharedMemMutex; #endif /** -- cgit v1.2.1