From 2678b4dcf53e5a9cb1cf074950d90bd15f0b21e4 Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Thu, 28 Sep 2023 18:30:56 +0200 Subject: [PATCH 1/2] 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. --- singleapplication.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/singleapplication.cpp b/singleapplication.cpp index 3e8fcb5..95c4d18 100644 --- a/singleapplication.cpp +++ b/singleapplication.cpp @@ -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 ) )){ From ca8b561502613086ab0e90170f4e444b6c75650e Mon Sep 17 00:00:00 2001 From: Itay Grudev Date: Thu, 28 Sep 2023 20:21:47 +0300 Subject: [PATCH 2/2] Update CHANGELOG.md --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b9e6efb..2bc4a8a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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_