summaryrefslogtreecommitdiff
path: root/cancel.c
diff options
context:
space:
mode:
Diffstat (limited to 'cancel.c')
-rw-r--r--cancel.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/cancel.c b/cancel.c
index 8b93705..dac8e66 100644
--- a/cancel.c
+++ b/cancel.c
@@ -26,10 +26,6 @@
#include "pthread.h"
#include "implement.h"
-/*
- * Code contributed by John E. Bossom <JEB>.
- */
-
int
pthread_setcancelstate (int state, int *oldstate)
/*
@@ -106,7 +102,7 @@ pthread_setcanceltype (int type, int *oldtype)
* PTHREAD_CANCEL_DEFERRED
* only deferred cancelation is allowed,
*
- * PTHRAD_CANCEL_ASYNCHRONOUS
+ * PTHREAD_CANCEL_ASYNCHRONOUS
* Asynchronous cancellation is allowed
*
*
@@ -201,6 +197,7 @@ pthread_testcancel (void)
exceptionInformation[0] = (DWORD) (0);
exceptionInformation[1] = (DWORD) (0);
+ exceptionInformation[2] = (DWORD) (0);
RaiseException (
EXCEPTION_PTHREAD_SERVICES,
@@ -242,7 +239,7 @@ pthread_cancel (pthread_t thread)
* wait for termination of 'thread' if necessary.
*
* RESULTS
- * 0 successfully created semaphore,
+ * 0 successfully requested cancellation,
* ESRCH no thread found corresponding to 'thread',
*
* ------------------------------------------------------
@@ -252,7 +249,9 @@ pthread_cancel (pthread_t thread)
if (thread != NULL)
{
-
+ /*
+ * Set for deferred cancellation.
+ */
if (!SetEvent (thread->cancelEvent))
{
result = ESRCH;
@@ -271,5 +270,3 @@ pthread_cancel (pthread_t thread)
return (result);
}
-/* </JEB> */
-