diff options
| author | Mike Makonnen <mtm@FreeBSD.org> | 2003-06-30 12:35:31 +0000 |
|---|---|---|
| committer | Mike Makonnen <mtm@FreeBSD.org> | 2003-06-30 12:35:31 +0000 |
| commit | fadd82e36791b989a9636e15c2c81c716277183a (patch) | |
| tree | d6ff4b956445f60211778e73d0c4ef152464b4bd /lib/libthr/thread/thr_mutex.c | |
| parent | fe9f481f9d03db0d54398e3782f172d0f7becb6f (diff) | |
Notes
Diffstat (limited to 'lib/libthr/thread/thr_mutex.c')
| -rw-r--r-- | lib/libthr/thread/thr_mutex.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/libthr/thread/thr_mutex.c b/lib/libthr/thread/thr_mutex.c index 067f0f0288c8..7d7c4550b040 100644 --- a/lib/libthr/thread/thr_mutex.c +++ b/lib/libthr/thread/thr_mutex.c @@ -1396,6 +1396,8 @@ get_muncontested(pthread_mutex_t mutexp, int nonblock) static void get_mcontested(pthread_mutex_t mutexp) { + int error; + _thread_critical_enter(curthread); /* @@ -1410,7 +1412,9 @@ get_mcontested(pthread_mutex_t mutexp) curthread->data.mutex = mutexp; _thread_critical_exit(curthread); _SPINUNLOCK(&mutexp->lock); - _thread_suspend(curthread, NULL); + error = _thread_suspend(curthread, NULL); + if (error != 0 && error != EAGAIN && error != EINTR) + PANIC("Cannot suspend on mutex."); _SPINLOCK(&mutexp->lock); _thread_critical_enter(curthread); |
