summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/posix_ipc.cc3
2 files changed, 7 insertions, 1 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 36fddb45d..569e7d9b7 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,8 @@
+2011-04-29 Corinna Vinschen <corinna@vinschen.de>
+
+ * posix_ipc.cc (ipc_cond_timedwait): Only wait for pthread's
+ cancel_event if thread's cancelability isn't disabled.
+
2011-04-28 Corinna Vinschen <corinna@vinschen.de>
* advapi32.cc (SetSecurityDescriptorDacl): Remove.
diff --git a/winsup/cygwin/posix_ipc.cc b/winsup/cygwin/posix_ipc.cc
index 227282fcb..88f5a2e5e 100644
--- a/winsup/cygwin/posix_ipc.cc
+++ b/winsup/cygwin/posix_ipc.cc
@@ -181,7 +181,8 @@ ipc_cond_timedwait (HANDLE evt, HANDLE mtx, const struct timespec *abstime)
int ret = 0;
thread = pthread::self ();
- if (thread && thread->cancel_event)
+ if (thread && thread->cancel_event
+ && thread->cancelstate != PTHREAD_CANCEL_DISABLE)
w4[cnt++] = thread->cancel_event;
if (abstime)
{