From 75833f08cd845632e2706cdbcc1df86607f73117 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Tue, 6 Sep 2005 19:22:54 +0000 Subject: * thread.h: Revert patch from 2005-09-05. * thread.cc (pthread_mutex::can_be_unlocked): Return true also if mutex is owned by MUTEX_OWNER_ANONYMOUS. --- winsup/cygwin/thread.cc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'winsup/cygwin/thread.cc') diff --git a/winsup/cygwin/thread.cc b/winsup/cygwin/thread.cc index 9f4899e91..11d60fc0e 100644 --- a/winsup/cygwin/thread.cc +++ b/winsup/cygwin/thread.cc @@ -212,10 +212,11 @@ pthread_mutex::can_be_unlocked (pthread_mutex_t const *mutex) if (!is_good_object (mutex)) return false; - /* - * Check if the mutex is owned by the current thread and can be unlocked - */ - return ((*mutex)->recursion_counter == 1 && pthread::equal ((*mutex)->owner, self)); + /* Check if the mutex is owned by the current thread and can be unlocked. + * Also check for the ANONYMOUS owner to cover NORMAL mutexes as well. */ + return ((*mutex)->recursion_counter == 1 + && ((*mutex)->owner == MUTEX_OWNER_ANONYMOUS + || pthread::equal ((*mutex)->owner, self))); } inline bool -- cgit v1.2.3