Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.


PTHREAD_CLEANUP(3)         Library Functions Manual         PTHREAD_CLEANUP(3)

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

LIBRARY
     POSIX Threads Library (libpthread, -lpthread)

SYNOPSIS
     #include <pthread.h>

     void
     pthread_cleanup_push(void (*cleanup_routine)(void *), 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
     Both functions conform to IEEE Std 1003.1-2001 ("POSIX.1").

NetBSD 10.99                     July 9, 2010                     NetBSD 10.99