pthread_setcanceltype()

Updated: April 19, 2023

Set a thread's cancellation type

Synopsis:

#include <pthread.h>

int pthread_setcanceltype( int type,
                           int* oldtype );

Arguments:

type
The new cancellation type.
oldtype
A pointer to a location where the function can store the old cancellation type. This parameter can be NULL if you don't want to store the old value.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The pthread_setcanceltype() function sets the calling thread's cancellation type to type and returns the previous cancellation type in oldtype.

The cancellation type can have the following values:

PTHREAD_CANCEL_ASYNCHRONOUS
If cancellation is enabled, new or pending cancellation requests may be acted on immediately.
PTHREAD_CANCEL_DEFERRED
If cancellation is enabled, cancellation requests are held pending until a cancellation point.

The default cancellation state for a thread is PTHREAD_CANCEL_DEFERRED. Note that the standard POSIX and C library calls aren't asynchronous-cancellation safe.

Note: You can set this attribute (in a non-POSIX way) before creating the thread; for more information, see QNX extensions,” in the documentation for pthread_create().

Returns:

EOK
Success.
EINVAL
Invalid cancelability type type.

Classification:

POSIX 1003.1

Safety:  
Cancellation point No
Interrupt handler No
Signal handler Yes
Thread Yes