Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 6 Nov 2010 00:53:54 +0000 (UTC)
From:      David Xu <davidxu@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r214855 - user/davidxu/libthr/lib/libthr/thread
Message-ID:  <201011060053.oA60rsOt014349@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201011060053.oA60rsOt014349>