QSharedMemory & QSystemSemaphore in Qt 7: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
(One intermediate revision by one other user not shown) | |||
Line 16: | Line 16: | ||
* We'll add the deprecation markers now, with a trigger time in the future | * We'll add the deprecation markers now, with a trigger time in the future | ||
** Markers can be disabled with a macro (opt-out) | ** Markers can be disabled with a macro (opt-out) | ||
** Current | ** Current users shouldn't be affected – any issues that you have are ones you've always had | ||
* We'll link to a doc page explaining how to replace QSharedMemory | * We'll link to a doc page explaining how to replace QSharedMemory | ||
** Use QFile::map for simple sharing of memory | ** Use QFile::map for simple sharing of memory | ||
Line 25: | Line 25: | ||
*** Multiple different versions out there | *** Multiple different versions out there | ||
*** Thiago volunteers to fix it | *** Thiago volunteers to fix it | ||
*** Peppe has reimplemented it from scratch, MIT-licensed, uses QLockFile+QtNetwork https://github.com/KDAB/KDSingleApplication | |||
**** Avoids D-Bus as problematic on non-Linux | |||
** Use D-Bus on Linux, figure out what to do elsewhere | ** Use D-Bus on Linux, figure out what to do elsewhere | ||
** qtwayland has one use of QSharedMemory too | ** qtwayland has one use of QSharedMemory too |
Latest revision as of 14:48, 1 December 2023
Session Summary
What to do with QSharedMemory and QSystemSemaphore
Session Owners
Thiago Macieira
Notes
(Note: recreated from memory, note taker had a laptop trouble and the file wasn't saved) Add link to list archive
- Thiago proposed deprecating now and moving to Qt6CoreCompat in Qt 7
- No replacement class
- Fabian has volunteered to investigate a replacement API before Qt 6.10
- We'll add the deprecation markers now, with a trigger time in the future
- Markers can be disabled with a macro (opt-out)
- Current users shouldn't be affected – any issues that you have are ones you've always had
- We'll link to a doc page explaining how to replace QSharedMemory
- Use QFile::map for simple sharing of memory
- Update as we learn more about use-cases
- Ask for contact if use-case isn't taken into account
- Known uses:
- Biggest user of QSharedMemory is QtSingleApplication
- Multiple different versions out there
- Thiago volunteers to fix it
- Peppe has reimplemented it from scratch, MIT-licensed, uses QLockFile+QtNetwork https://github.com/KDAB/KDSingleApplication
- Avoids D-Bus as problematic on non-Linux
- Use D-Bus on Linux, figure out what to do elsewhere
- qtwayland has one use of QSharedMemory too
- Sharing of large data sets to avoid serialisation
- Shared images (qtdeclarative)
- Androidtestrunner (single-application exclusion)
- Biggest user of QSharedMemory is QtSingleApplication
- WINE implements Windows semantics on Unix; we could investigate
- memfd is the "correct" solution on Linux and FreeBSD
- similar enough to Windows semantics (disappears on last close)
- not portable elsewhere