71#define pthread_cleanup_push(ROUTINE, ARG) \ 
   73        __extension__ __pthread_cleanup_datum_t ____datum__ = { \ 
   74            .__routine = (ROUTINE), \ 
   77        __extension__ int ____execute__ = 1; \ 
   78        __pthread_cleanup_push(&____datum__); \ 
 
   87#define pthread_cleanup_pop(EXECUTE) \ 
   88            ____execute__ = (EXECUTE); \ 
   90        __pthread_cleanup_pop(&____datum__, ____execute__); \ 
 
void __pthread_cleanup_push(__pthread_cleanup_datum_t *datum)
Internal function to be called by pthread_cleanup_push()
 
struct __pthread_cleanup_datum __pthread_cleanup_datum_t
Internal structure for pthread_cleanup_push()
 
void __pthread_cleanup_pop(__pthread_cleanup_datum_t *datum, int execute)
Internal function to be called by pthread_cleanup_push()
 
Internal structure for pthread_cleanup_push()
 
void(* __routine)(void *arg)
Cleanup routine to call.
 
void * __arg
Argument to supply.
 
struct __pthread_cleanup_datum * __next
Cleanup handler to call next.