diff options
author | des <des@FreeBSD.org> | 2008-02-04 12:35:23 +0000 |
---|---|---|
committer | des <des@FreeBSD.org> | 2008-02-04 12:35:23 +0000 |
commit | c0895348917c86668b5cc15d7e8d98f97043de7e (patch) | |
tree | bcaf2a924f9ede8fd58d1456cc860a7f9ad93303 | |
parent | f23198af5c5d671548e3ad76cf9a569dbc55bd0d (diff) | |
download | FreeBSD-src-c0895348917c86668b5cc15d7e8d98f97043de7e.zip FreeBSD-src-c0895348917c86668b5cc15d7e8d98f97043de7e.tar.gz |
After careful consideration (and a brief discussion with attilio@), change
the semantics of pthread_mutex_islocked_np() to return true if and only if
the mutex is held by the current thread.
Obviously, change the regression test to match.
MFC after: 2 weeks
-rw-r--r-- | lib/libthr/thread/thr_mutex.c | 2 | ||||
-rw-r--r-- | tools/regression/pthread/mutex_islocked_np/mutex_islocked_np.c | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/lib/libthr/thread/thr_mutex.c b/lib/libthr/thread/thr_mutex.c index 032f2e3..9b6c21b 100644 --- a/lib/libthr/thread/thr_mutex.c +++ b/lib/libthr/thread/thr_mutex.c @@ -877,5 +877,5 @@ _pthread_mutex_islocked_np(pthread_mutex_t *mutex) if (__predict_false(ret)) return (ret); } - return ((*mutex)->m_qe.tqe_prev != NULL); + return ((*mutex)->m_lock.m_owner == TID(curthread)); } diff --git a/tools/regression/pthread/mutex_islocked_np/mutex_islocked_np.c b/tools/regression/pthread/mutex_islocked_np/mutex_islocked_np.c index 3e467a1..5ab7e33 100644 --- a/tools/regression/pthread/mutex_islocked_np/mutex_islocked_np.c +++ b/tools/regression/pthread/mutex_islocked_np/mutex_islocked_np.c @@ -37,8 +37,8 @@ thread(void *arg) { pthread_mutex_t *mtx = arg; - if (pthread_mutex_islocked_np(mtx) == 0) { - printf("pthread_mutex_islocked_np() returned zero\n" + if (pthread_mutex_islocked_np(mtx) != 0) { + printf("pthread_mutex_islocked_np() returned non-zero\n" "for a mutex held by another thread\n"); exit(1); } |