PTHREAD_CLEANUP_PUSH(3) Library Functions Manual PTHREAD_CLEANUP_PUSH(3)

pthread_cleanup_pushadd a cleanup function for thread exit

#include <pthread.h>

void
pthread_cleanup_push(void (*cleanup_routine)(void *), void *arg);

The () 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 () 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.

None

pthread_cleanup_pop(3), pthread_exit(3)

The pthread_cleanup_push() function conforms to ISO/IEC 9945-1:1996 (“POSIX.1”).

October 25, 2014 macOS 15.2