pthread_cleanup_pop(3) [osf1 man page]
pthread_cleanup_pop(3) Library Functions Manual pthread_cleanup_pop(3) NAME
pthread_cleanup_pop - (Macro) Removes the cleanup handler routine from the calling thread's cleanup handler stack and optionally executes it. LIBRARY
DECthreads POSIX 1003.1c Library (libpthread.so) SYNOPSIS
#include <pthread.h> int pthread_cleanup_pop( int execute); STANDARDS
Interfaces documented on this reference page conform to industry standards 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, cancelation, 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 calling 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 corresponding right brace (}). RETURN VALUES
None RELATED INFORMATION
Functions: pthread_cancel(3), pthread_cleanup_push(3), pthread_create(3), pthread_exit(3) Manuals: Guide to DECthreads and Programmer's Guide delim off pthread_cleanup_pop(3)
Check Out this Related Man Page
pthread_cleanup_pop(3C) pthread_cleanup_pop(3C) NAME
pthread_cleanup_pop - pop a thread cancellation cleanup handler SYNOPSIS
cc -mt [ flag... ] file... -lpthread [ library... ] #include <pthread.h> void pthread_cleanup_pop(int execute); The pthread_cleanup_pop() function removes the cleanup handler routine at the top of the cancellation cleanup stack of the calling thread and executes it if execute is non-zero. When the thread calls pthread_cleanup_pop() with a non-zero execute argument, the argument at the top of the stack is popped and executed. An argument of 0 pops the handler without executing it. The pthread_cleanup_push(3C) and pthread_cleanup_pop() functions can be implemented as macros. The application must ensure that they appear as statements, and in pairs within the same lexical scope (that is, the pthread_cleanup_push() macro can be thought to expand to a token list whose first token is '{' with pthread_cleanup_pop() expanding to a token list whose last token is the corresponding '}'). The effect of the use of return, break, continue, and goto to prematurely leave a code block described by a pair of pthread_cleanup_push() and pthread_cleanup_pop() function calls is undefined. Using longjmp() or siglongjmp() to jump into or out of a push/pop pair can result in either the matching push or the matching pop statement not getting executed. The pthread_cleanup_pop() function returns no value. No errors are defined. The pthread_cleanup_pop() function will not return an error code of EINTR. See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Standard | +-----------------------------+-----------------------------+ |MT-Level |MT-Safe | +-----------------------------+-----------------------------+ pthread_cancel(3C), pthread_cleanup_push(3C), pthread_exit(3C), pthread_join(3C), pthread_setcancelstate(3C), pthread_setcanceltype(3C), pthread_testcancel(3C), setjmp(3C), attributes(5), cancellation(5), condition(5), standards(5) See cancellation(5) for a discussion of cancellation concepts. 4 Oct 2005 pthread_cleanup_pop(3C)