Standard C Library Functions pthread_testcancel(3C)
NAME
pthread_testcancel - create cancellation point in the cal-
ling threadSYNOPSIS
cc -mt [ flag... ] file... -lpthread [ library... ]
#include
void pthread_testcancel(void);
DESCRIPTION
The pthread_testcancel() function forces testing for cancel-
lation. This is useful when you need to execute code that runs for long periods without encountering cancellationpoints; such as a library routine that executes long-running
computations without cancellation points. This type of code can block cancellation for unacceptable long periods of time. One strategy for avoiding blocking cancellation forlong periods, is to insert calls to pthread_testcancel() in
the long-running computation code and to setup a cancella-
tion handler in the library code, if required.RETURN VALUES
The pthread_testcancel() function returns void.
ERRORS
The pthread_testcancel() function does not return errors.
EXAMPLES
See cancellation(5) for an example of usingpthread_testcancel() to force testing for cancellation and a
discussion of cancellation concepts.ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:SunOS 5.11 Last change: 23 Mar 2005 1
Standard C Library Functions pthread_testcancel(3C)
____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Interface Stability | Committed ||_____________________________|_____________________________|
| MT-Level | MT-Safe |
|_____________________________|_____________________________|
| Standard | See standards(5). ||_____________________________|_____________________________|
SEE ALSO
Intro(3), pthread_cleanup_pop(3C), pthread_cleanup_push(3C),
pthread_exit(3C), pthread_join(3C),
pthread_setcancelstate(3C), pthread_setcanceltype(3C),
setjmp(3C), attributes(5), cancellation(5), condition(5), standards(5) NOTESThe pthread_testcancel() function has no effect if cancella-
tion is disabled.Use pthread_testcancel() with pthread_setcanceltype() called
with its canceltype set to PTHREAD_CANCEL_DEFERRED. The
pthread_testcancel() function operation is undefined if
pthread_setcanceltype() was called with its canceltype argu-
ment set to PTHREAD_CANCEL_ASYNCHRONOUS.
It is possible to kill a thread when it is holding a resource, such as lock or allocated memory. If that thread has not setup a cancellation cleanup handler to release theheld resource, the application is "cancel-unsafe". See
attributes(5) for a discussion of Cancel-Safety, Deferred-
Cancel-Safety, and Asynchronous-Cancel-Safety.
SunOS 5.11 Last change: 23 Mar 2005 2