From 47132198adf967c4dfd3f533e986cbe186315af1 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Thu, 14 Jun 2001 23:53:27 +0000 Subject: [PATCH] * thread.cc (pthread_cond::Signal): Release the condition access variable correctly. --- winsup/cygwin/ChangeLog | 5 +++++ winsup/cygwin/thread.cc | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index e23c2d8db..b1aeb0733 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +Fri June 15 09:25:00 Robert Collins + + * thread.cc (pthread_cond::Signal): Release the condition access + variable correctly. + 2001-06-14 Egor Duda * fhandler.cc (fhandler_base::open): Set win32 access flags diff --git a/winsup/cygwin/thread.cc b/winsup/cygwin/thread.cc index 894038855..7ab45aeeb 100644 --- a/winsup/cygwin/thread.cc +++ b/winsup/cygwin/thread.cc @@ -442,7 +442,12 @@ pthread_cond::Signal () if (pthread_mutex_lock (&cond_access)) system_printf ("Failed to lock condition variable access mutex, this %0p\n", this); if (!verifyable_object_isvalid (mutex, PTHREAD_MUTEX_MAGIC)) - return; + { + if (pthread_mutex_unlock (&cond_access)) + system_printf ("Failed to unlock condition variable access mutex, this %0p\n", + this); + return; + } PulseEvent (win32_obj_id); if (pthread_mutex_unlock (&cond_access)) system_printf ("Failed to unlock condition variable access mutex, this %0p\n", this);