Date: Fri, 5 Nov 2010 09:32:32 +0000 (UTC) From: David Xu <davidxu@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r214833 - user/davidxu/libthr/lib/libthr/thread Message-ID: <201011050932.oA59WWBs091317@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: davidxu Date: Fri Nov 5 09:32:32 2010 New Revision: 214833 URL: http://svn.freebsd.org/changeset/base/214833 Log: Pass process-shared flag to syscall. 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 09:10:16 2010 (r214832) +++ user/davidxu/libthr/lib/libthr/thread/thr_cond.c Fri Nov 5 09:32:32 2010 (r214833) @@ -60,6 +60,8 @@ __weak_reference(_pthread_cond_destroy, __weak_reference(_pthread_cond_signal, pthread_cond_signal); __weak_reference(_pthread_cond_broadcast, pthread_cond_broadcast); +#define CV_PSHARED(cv) (((cv)->c_kerncv.c_flags & USYNC_PROCESS_SHARED) != 0) + static int cond_init(pthread_cond_t *cond, const pthread_condattr_t *cond_attr) { @@ -238,11 +240,11 @@ cond_wait_user(pthread_cond_t *cond, pth if (cancel) { _thr_cancel_enter2(curthread, 0); ret = _thr_umtx_wait_uint((u_int *)&cv->c_seq, - (u_int)seq, tsp, 0); + (u_int)seq, tsp, CV_PSHARED(cv)); _thr_cancel_leave(curthread, 0); } else { ret = _thr_umtx_wait_uint((u_int *)&cv->c_seq, - (u_int)seq, tsp, 0); + (u_int)seq, tsp, CV_PSHARED(cv)); } _thr_umtx_lock_spin(&cv->c_lock); @@ -371,13 +373,13 @@ cond_signal_common(pthread_cond_t *cond, cv->c_seq++; cv->c_signaled++; cv->c_waiters--; - _thr_umtx_wake(&cv->c_seq, 1, 0); + _thr_umtx_wake(&cv->c_seq, 1, CV_PSHARED(cv)); } else { cv->c_seq++; cv->c_broadcast_seq++; cv->c_waiters = 0; cv->c_signaled = 0; - _thr_umtx_wake(&cv->c_seq, INT_MAX, 0); + _thr_umtx_wake(&cv->c_seq, INT_MAX, CV_PSHARED(cv)); } } _thr_umtx_unlock(&cv->c_lock);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201011050932.oA59WWBs091317>