mirror of
https://github.com/itay-grudev/SingleApplication.git
synced 2024-12-25 07:01:33 +08:00
Use new QNativeIpcKey based QSharedMemory constructor with Qt 6.6 and higher
Switch to the new QNativeIpcKey based QSharedMemory constructor with Qt 6.6 and higher, the old constructor will be deprecated. This also makes the library work again with the upcoming Qt 6.6 release and higher. However, there are still issues with releasing the existing memory in cases where the application is forcefully quit or crashed.
This commit is contained in:
parent
e22a6bc235
commit
2678b4dcf5
@ -67,12 +67,20 @@ SingleApplication::SingleApplication( int &argc, char *argv[], bool allowSeconda
|
||||
#ifdef Q_OS_UNIX
|
||||
// By explicitly attaching it and then deleting it we make sure that the
|
||||
// memory is deleted even after the process has crashed on Unix.
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 6, 0)
|
||||
d->memory = new QSharedMemory( QNativeIpcKey( d->blockServerName ) );
|
||||
#else
|
||||
d->memory = new QSharedMemory( d->blockServerName );
|
||||
#endif
|
||||
d->memory->attach();
|
||||
delete d->memory;
|
||||
#endif
|
||||
// Guarantee thread safe behaviour with a shared memory block.
|
||||
#if QT_VERSION >= QT_VERSION_CHECK(6, 6, 0)
|
||||
d->memory = new QSharedMemory( QNativeIpcKey( d->blockServerName ) );
|
||||
#else
|
||||
d->memory = new QSharedMemory( d->blockServerName );
|
||||
#endif
|
||||
|
||||
// Create a shared memory block
|
||||
if( d->memory->create( sizeof( InstancesInfo ) )){
|
||||
|
Loading…
Reference in New Issue
Block a user