Merge pull request #177 from jonaski/qnativeipckey

Use new QNativeIpcKey based QSharedMemory constructor with Qt 6.6 and higher
This commit is contained in:
Itay Grudev 2023-09-28 20:33:40 +03:00 committed by GitHub
commit c6519b6902
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 0 deletions

View File

@ -1,5 +1,9 @@
# Changelog
## 3.5.0
* Switch to the new QNativeIpcKey based QSharedMemory constructor with Qt 6.6 and higher. - _Jonas Kvinge_
## 3.4.1
* Improved Windows advapi32 link library dependency. - _Frederik Seiffert_

View File

@ -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 ) )){