HP-UX Reference (11i v2 07/12) - 3 Library Functions N-Z (vol 7)

p
pthread_cancel(3T) pthread_cancel(3T)
(Pthread Library)
NAME
pthread_cancel() - cancel execution of a thread
SYNOPSIS
#include <pthread.h>
int pthread_cancel(
pthread_t thread
);
PARAMETERS
thread Target thread to be canceled.
DESCRIPTION
pthread_cancel()
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
PTHREAD_CANCEL_ENABLE. When the target
thread’s cancelability state is
PTHREAD_CANCEL_DISABLE, cancellation requests against the target
thread are held pending and will be acted upon when cancellation is enabled.
When the cancelability type is
PTHREAD_CANCEL_ASYNCHRONOUS for the target thread, new or pend-
ing cancellation requests are acted upon at any time. When the target thread’s cancelability type is
PTHREAD_CANCEL_DEFERRED
, 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 cancela-
bility is enabled, the cancelability 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 destructor functions for thread are called. When the last
destructor function returns, thread shall be terminated.
The caller of
pthread_cancel()
will not wait for the target thread to be canceled.
Cancellation Points
Cancellation points are points inside of certain functions where a thread must act on any pending cancel-
lation request when cancelability is enabled if the function would block.
RETURN VALUE
Upon successful completion,
pthread_cancel()
returns zero. Otherwise, an error number is returned
to indicate the error (the
errno variable is not set).
ERRORS
For each of the following conditions, if the condition is detected, the pthread_cancel()
function
returns the corresponding error number:
[ESRCH] No thread could be found corresponding to thread.
WARNINGS
Use of asynchronous cancelability while holding resources that need to be released may result in resource
loss. Applications must carefully follow static lexical scoping rules in their execution behavior. For
instance, the use of
setjmp(), return, goto, etc., to leave user-defined cancellation scopes without doing
the necessary scope pop will result in undefined behavior.
AUTHOR
pthread_cancel() was derived from the IEEE POSIX P1003.1c standard.
SEE ALSO
pthread_exit(3T), pthread_join(3T), pthread_setcancelstate(3T), pthread_cleanup_pop(3T),
pthread_cond_wait(3T).
196 Hewlett-Packard Company − 1 − HP-UX 11i Version 2: December 2007 Update