|Threads Library Functions||pthread_setcancelstate(3THR)
| ||pthread_setcancelstate - enable
or disable cancellation
cc -mt [ flag... ] file... -lpthread [ -lrt library... ]
#include <pthread.h>int pthread_setcancelstate(int state, int *oldstate);
pthread_setcancelstate() atomically sets the calling
thread's cancellation state to the specified state
and if oldstate is not NULL, stores the previous cancellation state
The state can be either of the following:
- 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(3THR) call causes
- 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.
for the definition of a cancellation point and a discussion of cancellation
concepts. See pthread_setcanceltype(3THR) for explanations of deferred and asynchronous cancellation.
pthread_setcancelstate() is a cancellation point
when it is called with PTHREAD_CANCEL_ENABLE and the cancellation type is PTHREAD_CANCEL_ASYNCHRONOUS.
Upon successful completion, pthread_setcancelstate(),
returns 0. Otherwise, an error number is returned to
indicate the error.
The pthread_setcancelstate() function will fail
- The specified state is not PTHREAD_CANCEL_ENABLE or PTHREAD_CANCEL_DISABLE.
for descriptions of the following attributes:
|ATTRIBUTE TYPE||ATTRIBUTE VALUE
cancellation(3THR), condition(3THR), pthread_cancel(3THR), pthread_cleanup_pop(3THR), pthread_cleanup_push(3THR), pthread_exit(3THR), pthread_join(3THR), pthread_setcanceltype(3THR), pthread_testcancel(3THR), setjmp(3C), attributes(5)