diff options
Diffstat (limited to 'lib/libthr/thread/thr_cond.c')
-rw-r--r-- | lib/libthr/thread/thr_cond.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/libthr/thread/thr_cond.c b/lib/libthr/thread/thr_cond.c index 0327575..6bee687 100644 --- a/lib/libthr/thread/thr_cond.c +++ b/lib/libthr/thread/thr_cond.c @@ -275,12 +275,14 @@ _pthread_cond_timedwait(pthread_cond_t * cond, pthread_mutex_t * mutex, } PTHREAD_SET_STATE(curthread, PS_COND_WAIT); + GIANT_UNLOCK(curthread); rval = _thread_suspend(curthread, time); if (rval == -1) { printf("foo"); fflush(stdout); abort(); } + GIANT_LOCK(curthread); done = (seqno != (*cond)->c_seqno); |