summaryrefslogtreecommitdiff
path: root/pthread_setcancelstate.c
diff options
context:
space:
mode:
authorrpj <rpj>2005-03-16 01:36:11 +0000
committerrpj <rpj>2005-03-16 01:36:11 +0000
commite74acb9f56d1a46ba56e007352c2170c835ecb48 (patch)
treeabfbbf2f9a33a2f1192433aa5ba571bc02f9e08e /pthread_setcancelstate.c
parent9b477bedafd2450735b78cdedc7af5e090aa8934 (diff)
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)
{