VMS Help
POSIX Threads, TIS routines, tis_setcancelstate
*Conan The Librarian (sorry for the slow response - running on an old VAX)
|
|
Changes the calling thread's cancelability state.
#include <tis.h>
int
tis_setcancelstate (
int state,
int *oldstate );
state
State of general cancelability to set for the calling thread.
Valid state values are as follows:
PTHREAD_CANCEL_ENABLE
PTHREAD_CANCEL_DISABLE
oldstate
Receives the value of the calling thread's previous cancelability
state.
This routine sets the calling thread's cancelability state to
the value specified in the state argument and returns the calling
thread's previous cancelability state in the location referenced
by the oldstate argument.
When a thread's cancelability state is set to PTHREAD_CANCEL_
DISABLE, a cancelation request cannot be delivered to the
thread, even if a cancelable 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 cancelation request is to ensure that
indefinite wait operations are terminated. For example, a thread
waiting 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 cancelation requests around that
particular region of code.
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:
Return Description
0 Successful completion.
[EINVAL] The specified state is not PTHREAD_CANCEL_ENABLE or
PTHREAD_CANCEL_DISABLE.
tis_testcancel()
[legal]
[privacy]
[GNU]
[policy]
[netiquette]
[sponsors]
[FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.