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”).