Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX Reference > P


Pthread Library
HP-UX 11i Version 3: February 2007

Technical documentation

» Feedback
Content starts here

 » Table of Contents

 » Index


pthread_cancel() — cancel execution of a thread


#include <pthread.h>

int pthread_cancel( pthread_t thread );



Target thread to be canceled.


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 pending 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 cancelability 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 cancellation request when cancelability is enabled if the function would block.


Upon successful completion, pthread_cancel() returns zero. Otherwise, an error number is returned to indicate the error (the errno variable is not set).


For each of the following conditions, if the condition is detected, the pthread_cancel() function returns the corresponding error number:


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 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.


pthread_cancel() was derived from the IEEE POSIX P1003.1c standard.


pthread_cancel(): POSIX 1003.1c.

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 1983-2007 Hewlett-Packard Development Company, L.P.