NAME

pthread_cleanup_push, pthread_cleanup_pop - add and remove cleanup functions for thread exit

LIBRARY

POSIX Thread Library (libpthread, -lpthread)

SYNOPSIS



void pthread_cleanup_push(void *cleanup_routinevoid *, void *arg)

void pthread_cleanup_pop(int execute)

DESCRIPTION

The pthread_cleanup_push() function adds cleanup_routine to the top of the stack of cleanup handlers that get called when the current thread exits.

The pthread_cleanup_pop() function pops the top cleanup routine off of the current threads cleanup routine stack, and, if execute is non-zero, it will execute the function.

When cleanup_routine is called, it is passed arg as its only argument.

These functions may be implemented as macros which contain scope delimiters; therefore, there must be a matching pthread_cleanup_pop() for every pthread_cleanup_push() at the same level of lexical scoping.

The effect of calling longjmp() or siglongjmp() is undefined after a call to pthread_cleanup_push() but before the matching call to pthread_cleanup_pop() after the jump buffer was filled.

RETURN VALUES

Neither pthread_cleanup_push() nor pthread_cleanup_pop() returns a value.

ERRORS

None.

SEE ALSO

pthread_exit(3)

STANDARDS

pthread_cleanup_push() and pthread_cleanup_pop() conform to ISO/IEC 9945-1:1996 (``POSIX.1'') .