pthread_cancel(3) [netbsd man page]
PTHREAD_CANCEL(3) BSD Library Functions Manual PTHREAD_CANCEL(3) NAME
pthread_cancel -- cancel execution of a thread LIBRARY
POSIX Threads Library (libpthread, -lpthread) SYNOPSIS
#include <pthread.h> int pthread_cancel(pthread_t thread); DESCRIPTION
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 thread. 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 any time. When the tread reacts to the cancellation request, the following occur: 1. The cancellation cleanup handlers for the thread are called; see pthread_cleanup_push(3). 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. RETURN VALUES
If successful, the pthread_cancel() functions will return zero. Otherwise an error number will be returned to indicate the error. ERRORS
The pthread_cancel() function may fail if: [ESRCH] No thread could be found corresponding to that specified by the given thread ID. SEE ALSO
pthread_cleanup_pop(3), pthread_join(3), pthread_testcancel(3) STANDARDS
The function conforms to IEEE Std 1003.1-2001 (``POSIX.1''). BSD
July 9, 2010 BSD
Check Out this Related Man Page
pthread_setcanceltype(3C) pthread_setcanceltype(3C) NAME
pthread_setcanceltype - set cancellation type of a thread SYNOPSIS
cc -mt [ flag... ] file... -lpthread [ library... ] #include <pthread.h> int pthread_setcanceltype(int type, int *oldtype); The pthread_setcanceltype() function atomically sets the calling thread's cancellation type to the specified type and, if oldtype is not NULL, stores the previous cancellation type in oldtype. The type can be either of the following: PTHREAD_CANCEL_DEFERRED This is the default. When cancellation is enabled (enabled cancellation is also the default), cancellation occurs when the target thread reaches a cancellation point and a cancel is pending. When cancellation is disabled, all cancellation requests to the target thread are held pending. PTHREAD_CANCEL_ASYNCHRONOUS When cancellation is enabled, receipt of a pthread_cancel(3C) call causes immediate cancellation. When cancellation is disabled, all cancellation requests to the target thread are held pending; as soon as can- cellation is re-enabled, pending cancellations are executed immediately. See cancellation(5) for the definition of a cancellation point and a discussion of cancellation concepts. See pthread_setcancelstate(3C) for explanations of enabling and disabling cancellation. The pthread_setcanceltype() function is a cancellation point if type is called with PTHREAD_CANCEL_ASYNCHRONOUS and the cancellation state is PTHREAD_CANCEL_ENABLE. Upon successful completion, the pthread_setcanceltype() function returns 0. Otherwise, an error number is returned to indicate the error. The pthread_setcanceltype() function will fail if: EINVAL The specified type is not PTHREAD_CANCEL_DEFERRED or PTHREAD_CANCEL_ASYNCHRONOUS. See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Standard | +-----------------------------+-----------------------------+ |MT-Level |MT-Safe | +-----------------------------+-----------------------------+ pthread_cancel(3C), pthread_cleanup_pop(3C), pthread_cleanup_push(3C), pthread_exit(3C), pthread_join(3C), pthread_setcancelstate(3C), pthread_testcancel(3C), setjmp(3C), attributes(5), cancellation(5), condition(5), standards(5) 23 Mar 2005 pthread_setcanceltype(3C)