pthread_cancel(3thr)pthread_cancel(3thr)Namepthread_cancel - Allows a thread to request that it or another thread
terminate execution.
Syntax
#include <pthread.h>
int pthread_cancel (thread)
pthread_t *thread;
Arguments
thread Thread that receives a cancel request.
Description
This routine sends a cancel to the specified thread. A cancel is a
mechanism by which a calling thread informs either itself or the called
thread to terminate as quickly as possible. Issuing a cancel does not
guarantee that the canceled thread will receive or handle the cancel.
The canceled thread can delay processing the cancel after receiving it.
For instance, if a cancel arrives during an important operation, the
canceled thread can continue if what it is doing cannot be interrupted
at the point where the cancel is requested.
Because of communication delays, the calling thread can only rely on
the fact that a cancel will eventually become pending in the designated
thread (provided that the thread does not terminate beforehand). Fur‐
thermore, the calling thread has no guarantee that a pending cancel
will be delivered because delivery is controlled by the designated
thread.
Termination processing when a cancel is delivered to a thread is simi‐
lar to pthread_exit. Outstanding cleanup routines are executed in the
context of the target thread, and a status of -1 is made available to
any threads joining with the target thread.
This routine is preferred in implementing Ada's abort statement and any
other language- or software-defined construct for requesting thread
cancelation.
The results of this routine are unpredictable if the value specified in
thread refers to a thread that does not currently exist.
Return Values
If an error condition occurs, this routine returns -1 and sets errno to
the corresponding error value. Possible return values are as follows.
Return Error Description
0 Successful comple‐
tion.
-1 [EINVAL] The specified
thread is invalid.
-1 [ESRCH] thread does not
specify an existing
thread.
pthread_cancel(3thr)