pthread_cancel() - cancel execution of a thread
thread Target thread to be canceled.
requests that thread (hereby referred to as target thread) be canceled. It allows a thread to terminate the execution of any thread in the
process in a controlled manner.
The target thread's cancelability state and type determine when the cancellation takes effect. Cancellation only occurs when the target
thread's cancelability state is When the target thread's cancelability state is cancellation requests against the target thread are held
pending and will be acted upon when cancellation is enabled.
When the cancelability type is for the target thread, new or pending cancellation requests are acted upon at any time. When the target
thread's cancelability type is cancellation requests are held pending until the target thread reaches a cancellation point (see below).
If the target thread's cancelability state is disabled, the cancelability type does not matter. When cancelability is enabled, the cance-
lability type will take effect.
When the cancellation is acted on, the cancellation cleanup handlers for thread are called. The cancellation cleanup handlers are called
in the opposite order in which they were installed. When the last cancellation cleanup handler returns, the thread-specific data destruc-
tor functions for thread are called. When the last destructor function returns, thread shall be terminated.
The caller of will not wait for the target thread to be canceled.
are points inside of certain functions where a thread must act on any pending cancellation request when cancelability is enabled if the
function would block.
Upon successful completion, returns zero. Otherwise, an error number is returned to indicate the error (the variable is not set).
For each of the following conditions, if the condition is detected, the function returns the corresponding error number:
[ESRCH] No thread could be found corresponding to thread.
Use of asynchronous cancelability while holding resources that need to be released may result in resource loss. Applications must care-
fully follow static lexical scoping rules in their execution behavior. For instance, the use of return, goto, etc., to leave user-defined
cancellation scopes without doing the necessary scope pop will result in undefined behavior.
was derived from the IEEE POSIX P1003.1c standard.
pthread_exit(3T), pthread_join(3T), pthread_setcancelstate(3T), pthread_cleanup_pop(3T), pthread_cond_wait(3T).
Pthread Library pthread_cancel(3T)