PTHREAD_SETCANCELSTATE(3C) Standard C Library Functions

NAME


pthread_setcancelstate - enable or disable cancellation

SYNOPSIS


cc -mt [ flag... ] file... -lpthread [ library... ]
#include <pthread.h>

int pthread_setcancelstate(int state, int *oldstate);


DESCRIPTION


The pthread_setcancelstate() function atomically sets the calling
thread's cancellation state to the specified state and if oldstate is not
NULL, stores the previous cancellation state in oldstate.


The state can be either of the following:

PTHREAD_CANCEL_ENABLE

This is the default. When cancellation is deferred (deferred
cancellation is also the default), cancellation occurs when the
target thread reaches a cancellation point and a cancel is pending.
When cancellation is asynchronous, receipt of a pthread_cancel(3C)
call causes immediate cancellation.


PTHREAD_CANCEL_DISABLE

When cancellation is deferred, all cancellation requests to the
target thread are held pending. When cancellation is asynchronous,
all cancellation requests to the target thread are held pending; as
soon as cancellation is re-enabled, pending cancellations are
executed immediately.


See cancellation(7) for the definition of a cancellation point and a
discussion of cancellation concepts. See pthread_setcanceltype(3C) for
explanations of deferred and asynchronous cancellation.

RETURN VALUES


Upon successful completion, pthread_setcancelstate(), returns 0.
Otherwise, an error number is returned to indicate the error.

ERRORS


The pthread_setcancelstate() function will fail if:

EINVAL
The specified state is not PTHREAD_CANCEL_ENABLE or
PTHREAD_CANCEL_DISABLE.


ATTRIBUTES


See attributes(7) for descriptions of the following attributes:


+--------------------+-------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-------------------+
|Interface Stability | Committed |
+--------------------+-------------------+
|MT-Level | MT-Safe |
+--------------------+-------------------+
|Standard | See standards(7). |
+--------------------+-------------------+

SEE ALSO


pthread_cancel(3C), pthread_cleanup_pop(3C), pthread_cleanup_push(3C),
pthread_exit(3C), pthread_join(3C), pthread_setcanceltype(3C),
pthread_testcancel(3C), setjmp(3C), attributes(7), cancellation(7),
condition(7), standards(7)

January 22, 2008 PTHREAD_SETCANCELSTATE(3C)