diff options
Diffstat (limited to 'lib/libkse/thread/thr_mutex.c')
-rw-r--r-- | lib/libkse/thread/thr_mutex.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/libkse/thread/thr_mutex.c b/lib/libkse/thread/thr_mutex.c index f3649db..e0ad7da 100644 --- a/lib/libkse/thread/thr_mutex.c +++ b/lib/libkse/thread/thr_mutex.c @@ -427,8 +427,7 @@ pthread_mutex_lock(pthread_mutex_t * mutex) * Instead, the thread is interrupted and backed out of the * waiting queue prior to executing the signal handler. */ - while (((*mutex)->m_owner != _thread_run) && (ret == 0) && - (_thread_run->interrupted == 0)) { + do { /* * Defer signals to protect the scheduling queues from * access by the signal handler: @@ -637,7 +636,8 @@ pthread_mutex_lock(pthread_mutex_t * mutex) * necessary: */ _thread_kern_sig_undefer(); - } + } while (((*mutex)->m_owner != _thread_run) && (ret == 0) && + (_thread_run->interrupted == 0)); if (_thread_run->interrupted != 0 && _thread_run->continuation != NULL) |