svn commit: r214855 - user/davidxu/libthr/lib/libthr/thread
David Xu
davidxu at FreeBSD.org
Sat Nov 6 00:53:55 UTC 2010
Author: davidxu
Date: Sat Nov 6 00:53:54 2010
New Revision: 214855
URL: http://svn.freebsd.org/changeset/base/214855
Log:
Decrease waiter count when it is timeout or canceled.
Modified:
user/davidxu/libthr/lib/libthr/thread/thr_cond.c
Modified: user/davidxu/libthr/lib/libthr/thread/thr_cond.c
==============================================================================
--- user/davidxu/libthr/lib/libthr/thread/thr_cond.c Fri Nov 5 22:18:09 2010 (r214854)
+++ user/davidxu/libthr/lib/libthr/thread/thr_cond.c Sat Nov 6 00:53:54 2010 (r214855)
@@ -257,9 +257,11 @@ cond_wait_user(pthread_cond_t *cond, pth
ret = 0;
break;
} else if (ret == ETIMEDOUT) {
+ cv->c_waiters--;
break;
} else if (cancel && SHOULD_CANCEL(curthread) &&
!THR_IN_CRITICAL(curthread)) {
+ cv->c_waiters--;
_thr_umtx_unlock(&cv->c_lock);
_mutex_cv_lock(mutex, recurse);
_pthread_exit(PTHREAD_CANCELED);
More information about the svn-src-user
mailing list