summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/posix_ipc.cc
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2011-04-29 07:22:07 +0000
committerCorinna Vinschen <corinna@vinschen.de>2011-04-29 07:22:07 +0000
commit541820d0eefe3859162cce48946c9649752b9b3b (patch)
treeb5dc57a767e106e74571dd0414f341676f1ff314 /winsup/cygwin/posix_ipc.cc
parent530994bdce6a6ec12b8223d57cf4654e1609169e (diff)
downloadcygnal-541820d0eefe3859162cce48946c9649752b9b3b.tar.gz
cygnal-541820d0eefe3859162cce48946c9649752b9b3b.tar.bz2
cygnal-541820d0eefe3859162cce48946c9649752b9b3b.zip
* posix_ipc.cc (ipc_cond_timedwait): Only wait for pthread's
cancel_event if thread's cancelability isn't disabled.
Diffstat (limited to 'winsup/cygwin/posix_ipc.cc')
-rw-r--r--winsup/cygwin/posix_ipc.cc3
1 files changed, 2 insertions, 1 deletions
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)
{