man.bsd.lv manual page server

Manual Page Search Parameters

PTHREAD_CANCEL(3) Library Functions Manual PTHREAD_CANCEL(3)

pthread_cancelcancel execution of a thread

library “libpthread”

#include <pthread.h>

int
pthread_cancel(pthread_t thread);

The () 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 of a thread is determined by the pthread_setcancelstate(3) function. The state can be either:
    • : the cancelability type determines when the actual cancellation occurs. This is the default.
    • : the request from pthread_cancel() remains queued until the cancellation is enabled by the thread.
  2. The cancellation of a thread is determined by the pthread_setcanceltype(3) function. The type can be either:

When the thread 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 ().

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:

[]
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”).

July 9, 2010 NetBSD-9.2