[Return to Bookshelf] [Contents] [Previous Section] [Next Section] [Index] [Help]


pthread_setcanceltype

Sets the current thread's cancelability type.

Syntax

pthread_setcanceltype(
                      type,
                      oldtype );
 


Argument Data Type Access

type integer read oldtype integer write


C Binding

#include 

int pthread_setcanceltype ( int type, int *oldtype);

Arguments

type
The cancelability type to set for the calling thread. The following are valid values:
oldtype
Returns the previous cancelability type.

Description

This routine sets the cancelability type and returns the previous type in location oldtype.

When the cancelability state is set to PTHREAD_CANCEL_DISABLE, (see pthread_setcancelstate), a cancel cannot be delivered to the thread, even if a cancelable routine is called or asynchronous cancelability type is enabled.

When the cancelability state is set to PTHREAD_CANCEL_ENABLE, cancelability depends on the thread's cancelability type. When the thread's cancelability state is PTHREAD_CANCEL_ENABLE and the thread's cancelability type is set to PTHREAD_CANCEL_DEFERRED, the thread can only receive a cancel at specific cancellation points (including condition waits, thread joins, and calls to pthread_ testcancel.) If the thread's cancelability state is PTHREAD_CANCEL_ ENABLE and its cancelability type is PTHREAD_CANCEL_ASYNCHRONOUS, the thread can be canceled at any point in its execution.

When a thread is created, the default cancelability type is PTHREAD_CANCEL_DEFERRED.


Warning
If the asynchronous cancelability type is set, do not call any routine unless it is explicitly documented as safe to be called with the asynchronous cancelability type. Note that none of the general run-time libraries and none of the DECthreads libraries are safe except for pthread_ setcanceltype, pthread_setcancelstate, and cma_alert_restore. The asynchronous cancelability type should only be used when you have a compute-bound section of code that carries no state and makes no routine calls.

Return Values

On successful completion, this routine returns the previous cancelability type in oldtype.

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 type is not PTHREAD_CANCEL_DEFERRED or PTHREAD_CANCEL_AYNCHRONOUS.


Associated Routines

   pthread_cancel
   pthread_setcancelstate
   pthread_testcancel



[Return to Bookshelf] [Contents] [Previous Section] [Next Section] [Index] [Help]