PTHREAD_CLEANUP(3) | Library Functions Manual | PTHREAD_CLEANUP(3) |
void
pthread_cleanup_push(void (*cleanup_routine)(void *), void *arg);
void
pthread_cleanup_pop(int execute);
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.
July 9, 2010 | NetBSD 6.1 |