PTHREAD_CLEANUP(3) | Library Functions Manual | PTHREAD_CLEANUP(3) |
pthread_cleanup_push
,
pthread_cleanup_pop
—
#include <pthread.h>
void
pthread_cleanup_push
(void
(*cleanup_routine)(void *),
void *arg);
void
pthread_cleanup_pop
(int
execute);
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.
pthread_cleanup_push
() nor
pthread_cleanup_pop
() returns a value.
July 9, 2010 | NetBSD 9.0 |