pthread_cleanup_push(3) — Subroutines
NAME
pthread_cleanup_push − Establishes a cleanup handler that is executed when the thread exits or is canceled.
SYNOPSIS
#include <pthread.h>
void pthread_cleanup_push(
void routine ,
pthread_addr_t arg );
PARAMETERS
routineRoutine executed as the cleanup handler.
argParameter executed with the cleanup routine.
DESCRIPTION
This routine pushes the specified routine onto the calling thread’s cleanup stack. The cleanup routine is popped from the stack and executed with the arg parameter when any of the following actions occur:
•The thread calls pthread_exit.
•The thread is canceled.
•The thread calls pthread_cleanup_pop and specifies a nonzero value for the execute parameter.
This routine and pthread_cleanup_pop are implemented as macros and must be displayed as statements and in pairs within the same lexical scope. You can think of the pthread_cleanup_push macro as expanding to a string whose first character is a left brace ({) and pthread_cleanup_pop as expanding to a string containing the corresponding right brace (}).
RETURN VALUES
This routine must be used as a statement.
If an error is detected, it may be indicated by sending the thread a synchronously generated signal.
RELATED INFORMATION
pthread_cancel(3), pthread_cleanup_pop(3), pthread_exit(3), pthread_testcancel(3)