pthread_cleanup_pop(3)pthread_cleanup_pop(3)NAMEpthread_cleanup_pop - (Macro) Removes the cleanup handler routine from
the calling thread's cleanup handler stack and optionally executes it
SYNOPSIS
#include <pthread.h>
int pthread_cleanup_pop(
int execute );
LIBRARY
DECthreads POSIX 1003.1c Library (libpthread.so)
STANDARDS
Interfaces documented on this reference page conform to industry stan‐
dards as follows:
IEEE Std 1003.1c-1995, POSIX System Application Program Interface
PARAMETERS
Integer that specifies whether the cleanup handler routine specified in
the matching call to pthread_cleanup_push(3) is executed. A nonzero
value causes the cleanup handler routine to be executed.
DESCRIPTION
This routine removes the cleanup handler routine established by the
matching call to pthread_cleanup_push(3) from the calling thread's
cleanup handler stack, then executes it if the value specified in this
routine's execute argument is nonzero.
A cleanup handler routine can be used to clean up from a block of code
whether exited by normal completion, cancellation, or the raising (or
reraising) of an exception. The routine is popped from the calling
thread's cleanup handler stack and is executed with the arg argument
when any of the following actions occur: The thread calls
pthread_cleanup_pop(3) and specifies a nonzero value for the execute
argument. The thread calls pthread_exit(3). The thread is canceled.
An exception is raised and is caught when DECthreads unwinds the call‐
ing thread's stack to the lexical scope of the pthread_cleanup_push(3)
and pthread_cleanup_pop(3) pair.
This routine and pthread_cleanup_push(3) are implemented as macros and
must appear as statements and in pairs within the same lexical scope.
You can think of the pthread_cleanup_push(3) macro as expanding to a
string whose first character is a left brace ({) and
pthread_cleanup_pop(3) as expanding to a string containing the corre‐
sponding right brace (}).
RETURN VALUES
None
SEE ALSO
Functions: pthread_cancel(3), pthread_cleanup_push(3), pthread_cre‐
ate(3), pthread_exit(3)
Manuals: Guide to DECthreads and Programmer's Guide
pthread_cleanup_pop(3)