From 541820d0eefe3859162cce48946c9649752b9b3b Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Fri, 29 Apr 2011 07:22:07 +0000 Subject: [PATCH] * posix_ipc.cc (ipc_cond_timedwait): Only wait for pthread's cancel_event if thread's cancelability isn't disabled. --- winsup/cygwin/ChangeLog | 5 +++++ winsup/cygwin/posix_ipc.cc | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) 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 + + * 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 * 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) {