PTHREAD_CLEANUP_POP(3C) Standard C Library Functions
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);
DESCRIPTION
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.
RETURN VALUES
The
pthread_cleanup_pop() function returns no value.
ERRORS
No errors are defined.
The
pthread_cleanup_pop() function will not return an error code of
EINTR.
ATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Standard |
+--------------------+-----------------+
|MT-Level | MT-Safe |
+--------------------+-----------------+
SEE ALSO
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(7),
cancellation(7),
condition(7),
standards(7)NOTES
See
cancellation(7) for a discussion of cancellation concepts.
October 4, 2005 PTHREAD_CLEANUP_POP(3C)