summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/kernel/tqthread_unix.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/kernel/tqthread_unix.cpp b/src/kernel/tqthread_unix.cpp
index 714b35c31..a84663df6 100644
--- a/src/kernel/tqthread_unix.cpp
+++ b/src/kernel/tqthread_unix.cpp
@@ -103,7 +103,7 @@ void TQThreadInstance::init(unsigned int stackSize)
orphan = FALSE;
disableThreadPostedEvents = FALSE;
- pthread_cond_init(&thread_done, NULL);
+ pthread_cond_init(&thread_done, nullptr);
thread_id = 0;
eventLoop = 0;
@@ -316,9 +316,11 @@ void TQThread::usleep( unsigned long usecs )
void TQThread::start(Priority priority)
{
TQMutexLocker locker( d->mutex() );
+ while ( d->running )
+ {
+ pthread_cond_wait(&d->thread_done, &locker.mutex()->d->handle);
+ }
- if ( d->running )
- pthread_cond_wait(&d->thread_done, &locker.mutex()->d->handle);
d->running = TRUE;
d->finished = FALSE;