summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/kernel/qthread_unix.cpp15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/kernel/qthread_unix.cpp b/src/kernel/qthread_unix.cpp
index 0c1790c2d..7a6bc3393 100644
--- a/src/kernel/qthread_unix.cpp
+++ b/src/kernel/qthread_unix.cpp
@@ -415,14 +415,15 @@ void TQThread::start(Priority priority)
// The correct thread_id is set in TQThreadInstance::start using the value of d->args[1]
d->thread_id = 0;
- // Legacy glib versions require this threading system initialization call
- if (!GLIB_CHECK_VERSION (2, 32, 0)) {
- if( ! g_thread_get_initialized () ) {
- g_thread_init(NULL);
- }
- }
+ // glib versions < 2.32.0 requires threading system initialization call
+ #if GLIB_CHECK_VERSION(2, 32, 0)
+ GThread* glib_thread_handle = g_thread_new( NULL, (GThreadFunc)TQThreadInstance::start, d->args );
+ #else
+ if( !g_thread_get_initialized() );
+ g_thread_init(NULL);
+ GThread* glib_thread_handle = g_thread_create((GThreadFunc)TQThreadInstance::start, d->args, false, NULL);
+ #endif
- GThread* glib_thread_handle = g_thread_create((GThreadFunc)TQThreadInstance::start, d->args, false, NULL);
if (glib_thread_handle) {
ret = 0;
}