Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ pthread_testcancel(3T) — SunOS 5.6

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

Intro(3)

cancellation(3T)

condition(3T)

pthread_cleanup_pop(3T)

pthread_cleanup_push(3T)

pthread_exit(3T)

pthread_join(3T)

pthread_setcancelstate(3T)

pthread_setcanceltype(3T)

setjmp(3C)

attributes(5)

pthread_testcancel(3T)

NAME

pthread_testcancel − create cancellation point in the calling thread

SYNOPSIS

#include <pthread.h>
void pthread_testcancel();

DESCRIPTION

pthread_testcancel() allows you to force testing for cancellation.  This is useful when you need to execute code that runs for long periods without encountering cancellation points; 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 for long periods, is to insert calls to pthread_testcancel() in the long-running computation code and to setup a cancellation handler in the library code, if required. 

RETURN VALUES

pthread_testcancel() returns a void. 

ERRORS

pthread_testcancel() returns no errors. 

EXAMPLES

See cancellation(3T) for an example of using pthread_testcancel() to force testing for cancellation. 

ATTRIBUTES

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE ATTRIBUTE VALUE
MT-Level MT-Safe

SEE ALSO

Intro(3), cancellation(3T), condition(3T), pthread_cleanup_pop(3T), pthread_cleanup_push(3T), pthread_exit(3T), pthread_join(3T), pthread_setcancelstate(3T), pthread_setcanceltype(3T), setjmp(3C), attributes(5)

NOTES

See cancellation(3T) for a discussion of cancellation concepts. 

pthread_testcancel() has no effect if cancellation is disabled. 

Use pthread_testcancel() with pthread_setcanceltype() called with its canceltype set to PTHREAD_CANCEL_DEFERRED. pthread_testcancel() operation is undefined if pthread_setcanceltype() was called with its canceltype argument 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 the held resource, the application is "cancel-unsafe".  See attributes(5) for a discussion of Cancel-Safety, Deferred-Cancel-Safety, and Asynchronous-Cancel-Safety. 

SunOS 5.6  —  Last change: 27 Jan 1997

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026