VMS Help  —  POSIX Threads, TIS routines, tis_setcancelstate
    Changes the calling thread's cancelability state.

1  –  C Binding

    #include <tis.h>

    int
    tis_setcancelstate (
                int   state,
                int   *oldstate );

2  –  Arguments

 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.

3  –  Description

    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.

4  –  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:

    Return      Description

    0           Successful completion.
    [EINVAL]    The specified state is not PTHREAD_CANCEL_ENABLE or
                PTHREAD_CANCEL_DISABLE.

5  –  Associated Routines

       tis_testcancel()
Close Help