t->interrupted = false;
t->signaled = false;
- t->sleeping = false;
t->suspended = false;
t->suspend_reason = 0;
mutex_lock(&t->waitmutex);
- /* mark us as sleeping */
-
- t->sleeping = true;
-
/* wait on waitcond */
if (wakeupTime->tv_sec || wakeupTime->tv_nsec) {
}
}
- t->sleeping = false;
-
/* release the waitmutex */
mutex_unlock(&t->waitmutex);
pthread_kill(thread->tid, SIGHUP);
- if (thread->sleeping)
- pthread_cond_signal(&thread->waitcond);
+ pthread_cond_signal(&thread->waitcond);
thread->interrupted = true;