NAME
pthread_cleanup_push,
pthread_cleanup_pop —
add and remove cleanup functions for
thread exit
LIBRARY
library “libpthread”
SYNOPSIS
#include
<pthread.h>
void
pthread_cleanup_push(void
(*cleanup_routine)(void *),
void *arg);
void
pthread_cleanup_pop(int
execute);
DESCRIPTION
Thepthread_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
STANDARDS
Both functions conform to IEEE Std 1003.1-2001 (“POSIX.1”).