summaryrefslogtreecommitdiff
path: root/pthread_setcancelstate.c
diff options
context:
space:
mode:
Diffstat (limited to 'pthread_setcancelstate.c')
-rw-r--r--pthread_setcancelstate.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/pthread_setcancelstate.c b/pthread_setcancelstate.c
index 002cfe5..12fdda4 100644
--- a/pthread_setcancelstate.c
+++ b/pthread_setcancelstate.c
@@ -103,8 +103,10 @@ pthread_setcancelstate (int state, int *oldstate)
/*
* Check if there is a pending asynchronous cancel
+ * only if we don't have alertable async cancel.
*/
if (state == PTHREAD_CANCEL_ENABLE
+ && (ptw32_features & PTW32_ALERTABLE_ASYNC_CANCEL) == 0
&& sp->cancelType == PTHREAD_CANCEL_ASYNCHRONOUS
&& WaitForSingleObject (sp->cancelEvent, 0) == WAIT_OBJECT_0)
{