diff options
Diffstat (limited to 'man3p/pthread_testcancel.3p')
-rw-r--r-- | man3p/pthread_testcancel.3p | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/man3p/pthread_testcancel.3p b/man3p/pthread_testcancel.3p new file mode 100644 index 000000000..3de4c826e --- /dev/null +++ b/man3p/pthread_testcancel.3p @@ -0,0 +1,120 @@ +.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved +.TH "PTHREAD_SETCANCELSTATE" P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual" +.\" pthread_setcancelstate +.SH NAME +pthread_setcancelstate, pthread_setcanceltype, pthread_testcancel +\- set cancelability state +.SH SYNOPSIS +.LP +\fB#include <pthread.h> +.br +.sp +int pthread_setcancelstate(int\fP \fIstate\fP\fB, int *\fP\fIoldstate\fP\fB); +.br +int pthread_setcanceltype(int\fP \fItype\fP\fB, int *\fP\fIoldtype\fP\fB); +.br +void pthread_testcancel(void); \fP +\fB +.br +\fP +.SH DESCRIPTION +.LP +The \fIpthread_setcancelstate\fP() function shall atomically both +set the calling thread's cancelability state to the indicated +\fIstate\fP and return the previous cancelability state at the location +referenced by \fIoldstate\fP. Legal values for +\fIstate\fP are PTHREAD_CANCEL_ENABLE and PTHREAD_CANCEL_DISABLE. +.LP +The \fIpthread_setcanceltype\fP() function shall atomically both set +the calling thread's cancelability type to the indicated +\fItype\fP and return the previous cancelability type at the location +referenced by \fIoldtype\fP. Legal values for \fItype\fP +are PTHREAD_CANCEL_DEFERRED and PTHREAD_CANCEL_ASYNCHRONOUS. +.LP +The cancelability state and type of any newly created threads, including +the thread in which \fImain\fP() was first invoked, +shall be PTHREAD_CANCEL_ENABLE and PTHREAD_CANCEL_DEFERRED respectively. +.LP +The \fIpthread_testcancel\fP() function shall create a cancellation +point in the calling thread. The +\fIpthread_testcancel\fP() function shall have no effect if cancelability +is disabled. +.SH RETURN VALUE +.LP +If successful, the \fIpthread_setcancelstate\fP() and \fIpthread_setcanceltype\fP() +functions shall return zero; otherwise, an +error number shall be returned to indicate the error. +.SH ERRORS +.LP +The \fIpthread_setcancelstate\fP() function may fail if: +.TP 7 +.B EINVAL +The specified state is not PTHREAD_CANCEL_ENABLE or PTHREAD_CANCEL_DISABLE. +.sp +.LP +The \fIpthread_setcanceltype\fP() function may fail if: +.TP 7 +.B EINVAL +The specified type is not PTHREAD_CANCEL_DEFERRED or PTHREAD_CANCEL_ASYNCHRONOUS. +.sp +.LP +These functions shall not return an error code of [EINTR]. +.LP +\fIThe following sections are informative.\fP +.SH EXAMPLES +.LP +None. +.SH APPLICATION USAGE +.LP +None. +.SH RATIONALE +.LP +The \fIpthread_setcancelstate\fP() and \fIpthread_setcanceltype\fP() +functions control the points at which a thread may be +asynchronously canceled. For cancellation control to be usable in +modular fashion, some rules need to be followed. +.LP +An object can be considered to be a generalization of a procedure. +It is a set of procedures and global variables written as a +unit and called by clients not known by the object. Objects may depend +on other objects. +.LP +First, cancelability should only be disabled on entry to an object, +never explicitly enabled. On exit from an object, the +cancelability state should always be restored to its value on entry +to the object. +.LP +This follows from a modularity argument: if the client of an object +(or the client of an object that uses that object) has +disabled cancelability, it is because the client does not want to +be concerned about cleaning up if the thread is canceled while +executing some sequence of actions. If an object is called in such +a state and it enables cancelability and a cancellation request +is pending for that thread, then the thread is canceled, contrary +to the wish of the client that disabled. +.LP +Second, the cancelability type may be explicitly set to either \fIdeferred\fP +or \fIasynchronous\fP upon entry to an object. +But as with the cancelability state, on exit from an object the cancelability +type should always be restored to its value on entry +to the object. +.LP +Finally, only functions that are cancel-safe may be called from a +thread that is asynchronously cancelable. +.SH FUTURE DIRECTIONS +.LP +None. +.SH SEE ALSO +.LP +\fIpthread_cancel\fP() , the Base Definitions volume of IEEE\ Std\ 1003.1-2001, +\fI<pthread.h>\fP +.SH COPYRIGHT +Portions of this text are reprinted and reproduced in electronic form +from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology +-- Portable Operating System Interface (POSIX), The Open Group Base +Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of +Electrical and Electronics Engineers, Inc and The Open Group. In the +event of any discrepancy between this version and the original IEEE and +The Open Group Standard, the original IEEE and The Open Group Standard +is the referee document. The original Standard can be obtained online at +http://www.opengroup.org/unix/online.html . |