diff options
author | Alexander Golubev <[email protected]> | 2024-03-16 08:31:50 +0300 |
---|---|---|
committer | Michele Calgaro <[email protected]> | 2024-03-18 18:37:17 +0900 |
commit | 323382b1896ae350cf5d6b10949c647e4465b3b9 (patch) | |
tree | c33d2ceeff57a512f1210606023ba4c4f8756c10 /src/kernel/qthread_unix.cpp | |
parent | 336e61b2302bd34e0e80af1bb38533d4f1a912ba (diff) | |
download | tqt3-323382b1896ae350cf5d6b10949c647e4465b3b9.tar.gz tqt3-323382b1896ae350cf5d6b10949c647e4465b3b9.zip |
Fix TQThreadStorage destruction in the main thread
Before that the allocations of TQThreadStorage objects from the main
thread were never destroyed and memory associated with them were never
freed. The second one isn't a huge problem as at that point program is
terminating anyway (but it still makes valgrind complain). The first one
is the bigger issue as destructors might contain some essential external
cleanups like removing temporary files.
Also make `TQApplication::guiThread()` return `0` when the thread is
destroyed (may happen on the program exiting during destruction of
statics).
Signed-off-by: Alexander Golubev <[email protected]>
(cherry picked from commit b1e6f384640525c5a0caceef017848f8ebee46b8)
Diffstat (limited to 'src/kernel/qthread_unix.cpp')
-rw-r--r-- | src/kernel/qthread_unix.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/kernel/qthread_unix.cpp b/src/kernel/qthread_unix.cpp index 7a6bc3393..6a6f81b7f 100644 --- a/src/kernel/qthread_unix.cpp +++ b/src/kernel/qthread_unix.cpp @@ -180,6 +180,11 @@ void TQThreadInstance::finish( void * ) } } +void TQThreadInstance::finishGuiThread(TQThreadInstance *d) { + TQThreadStorageData::finish( d->thread_storage ); + d->thread_storage = 0; +} + TQMutex *TQThreadInstance::mutex() const { return qt_thread_mutexpool ? qt_thread_mutexpool->get( (void *) this ) : 0; |