Index: thread/thr_mutex.c =================================================================== RCS file: /home/ncvs/src/lib/libthr/thread/thr_mutex.c,v retrieving revision 1.54 diff -u -p -r1.54 thr_mutex.c --- thread/thr_mutex.c 9 May 2007 08:39:33 -0000 1.54 +++ thread/thr_mutex.c 10 Oct 2007 08:56:25 -0000 @@ -356,7 +356,14 @@ mutex_lock_common(struct pthread *curthr ret = mutex_self_lock(m, abstime); } else { if (abstime == NULL) { - ret = __thr_umutex_lock(&m->m_lock); + int count = 100; + while (count--) { + ret = _thr_umutex_trylock2(&m->m_lock, id); + if (ret == 0) + break; + } + if (ret) + ret = __thr_umutex_lock(&m->m_lock); } else if (__predict_false( abstime->tv_sec < 0 || abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000)) {