summaryrefslogtreecommitdiffstats
path: root/src/kernel/qthread_unix.cpp
diff options
context:
space:
mode:
authorAlexander Golubev <fatzer2@gmail.com>2024-03-16 08:31:50 +0300
committerTDE Gitea <gitea@mirror.git.trinitydesktop.org>2024-03-18 09:36:47 +0000
commitb1e6f384640525c5a0caceef017848f8ebee46b8 (patch)
tree0503258437e109f568af20702e446fc092dc2555 /src/kernel/qthread_unix.cpp
parentbcda4011918a88064d35908b089a3300e187245a (diff)
downloadtqt3-b1e6f384640525c5a0caceef017848f8ebee46b8.tar.gz
tqt3-b1e6f384640525c5a0caceef017848f8ebee46b8.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 <fatzer2@gmail.com>
Diffstat (limited to 'src/kernel/qthread_unix.cpp')
-rw-r--r--src/kernel/qthread_unix.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/kernel/qthread_unix.cpp b/src/kernel/qthread_unix.cpp
index 7a6bc339..6a6f81b7 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;