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