pthread_cleanup_push(3) BSD Library Functions Manual pthread_cleanup_push(3)
pthread_cleanup_push -- add a cleanup function for thread exit
#include <pthread.h> void pthread_cleanup_push(void (*cleanup_routine)(void *), void *arg);
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. When cleanup_routine is called, it is passed arg as its only argument. The pthread_cleanup_push() function is implemented as a macro that opens a new block. Invocations of this function must appear as standalone statements that are paired with a later call of pthread_cleanup_pop(3) in the same lexical scope.
The pthread_cleanup_push() function does not return any value.
The pthread_cleanup_push() function conforms to ISO/IEC 9945-1:1996 (``POSIX.1''). BSD October 25, 2014 BSD
Mac OS X 10.12.3 - Generated Sun Feb 5 15:49:18 CST 2017