PTHREAD_CANCEL(3) Library Functions Manual PTHREAD_CANCEL(3)
pthread_cancel -- cancel execution of a thread
POSIX Threads Library (libpthread, -lpthread)
The pthread_cancel() function requests that thread be canceled. The
target thread's cancelability state and type determines whether and when
the target thread reacts to the cancellation request.
1. The cancelability state of a thread is determined by the
pthread_setcancelstate(3) function. The state can be either:
o PTHREAD_CANCEL_ENABLE: the cancelability type determines
when the actual cancellation occurs. This is the default.
o PTHREAD_CANCEL_DISABLE: the request from pthread_cancel()
remains queued until the cancellation is enabled by the
2. The cancellation type of a thread is determined by the
pthread_setcanceltype(3) function. The type can be either:
o PTHREAD_CANCEL_DEFERRED: the cancellation will be delayed
until the thread calls a function that is a cancellation
point. This is the default. The available cancellation
points are listed in pthread_setcanceltype(3).
o PTHREAD_CANCEL_ASYNCHRONOUS: the thread can be canceled at
When the tread reacts to the cancellation request, the following occur:
1. The cancellation cleanup handlers for the thread are called; see
2. When the last cancellation cleanup handler returns, the thread-
specific data destructor functions will be called for the thread.
3. When the last destructor function returns, the thread will be
terminated; see pthread_exit(3).
The cancellation processing in the target thread runs asynchronously with
respect to the calling thread returning from pthread_cancel().
A status of PTHREAD_CANCELED is made available to any threads joining
with the target. The symbolic constant PTHREAD_CANCELED expands to a
constant expression of type (void *), whose value matches no pointer to
an object in memory nor the value NULL.
If successful, the pthread_cancel() functions will return zero.
Otherwise an error number will be returned to indicate the error.
The pthread_cancel() function may fail if:
[ESRCH] No thread could be found corresponding to that
specified by the given thread ID.
pthread_cleanup_pop(3), pthread_join(3), pthread_testcancel(3)
The function conforms to IEEE Std 1003.1-2001 (``POSIX.1'').
NetBSD 6.1.5 July 9, 2010 NetBSD 6.1.5