tis_setcancelstate(3)tis_setcancelstate(3)NAMEtis_setcancelstate - Changes the calling thread's cancelability state
SYNOPSIS
#include <tis.h>
int tis_setcancelstate(
int state,
int *oldstate );
LIBRARY
Standard C Library (libc.so, libc.a)
STANDARDS
None
PARAMETERS
State of general cancelability to set for the calling thread. Valid
state values are as follows: PTHREAD_CANCEL_ENABLE PTHREAD_CANCEL_DIS‐
ABLE Receives the value of the calling thread's previous cancelability
state.
DESCRIPTION
This routine sets the calling thread's cancelability state to the value
specified in the state argument and returns the calling thread's previ‐
ous cancelability state in the location referenced by the oldstate
argument.
When a thread's cancelability state is set to PTHREAD_CANCEL_DISABLE, a
cancellation request cannot be delivered to the thread, even if a can‐
celable routine is called or asynchronous cancelability is enabled.
When a thread is created, its default cancelability state is
PTHREAD_CANCEL_ENABLE. When this routine is called prior to loading
threads, the cancelability state propagates to the initial thread in
the executing program.
Possible Problems When Disabling Cancelability
The most important use of a cancellation request is to ensure that
indefinite wait operations are terminated. For example, a thread wait‐
ing on some network connection, which might take days to respond (or
might never respond), should be made cancelable.
When a thread's cancelability state is disabled, no routine called
within that thread is cancelable. As a result, the user is unable to
cancel the operation. When disabling cancelability, be sure that no
long waits can occur or that it is necessary for other reasons to defer
cancellation requests around that particular region of code.
RETURN VALUES
On successful completion, this routine returns the calling thread's
previous cancelability state in the oldstate argument.
If an error condition occurs, this routine returns an integer value
indicating the type of error. Possible return values are as follows:
Successful completion. The specified state is not PTHREAD_CAN‐
CEL_ENABLE or PTHREAD_CANCEL_DISABLE.
ERRORS
None
SEE ALSO
Functions: tis_testcancel(3)
Manuals: Guide to DECthreads and Programmer's Guide
tis_setcancelstate(3)