man.bsd.lv manual page server

Manual Page Search Parameters

PTHREAD_CLEANUP(3) Library Functions Manual PTHREAD_CLEANUP(3)

pthread_cleanup_push, pthread_cleanup_popadd and remove cleanup functions for thread exit

library “libpthread”

#include <pthread.h>

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

void
pthread_cleanup_pop(int execute);

The () function adds cleanup_routine to the top of the stack of cleanup handlers that get called when the current thread exits.

The () function pops the top cleanup routine off of the current threads cleanup routine stack, and, if execute is non-zero, it will execute the function.

When cleanup_routine is called, it is passed arg as its only argument.

These functions may be implemented as macros which contain scope delimiters; therefore, there must be a matching () for every pthread_cleanup_push() at the same level of lexical scoping.

The effect of calling () or () is undefined after a call to pthread_cleanup_push() but before the matching call to pthread_cleanup_pop() after the jump buffer was filled.

Neither pthread_cleanup_push() nor pthread_cleanup_pop() returns a value.

None.

pthread_exit(3)

Both functions conform to IEEE Std 1003.1-2001 (“POSIX.1”).

July 9, 2010 NetBSD-9.2