-#include <bits/pthread.h>
-
-int __setjmp(void *);
-#ifndef __pthread_register_cancel
-void __pthread_register_cancel(struct __ptcb *);
-void __pthread_unregister_cancel(struct __ptcb *);
-void __pthread_unwind_next(struct __ptcb *);
-#endif
-
-#define pthread_cleanup_push(f, x) \
-do { struct __ptcb __cb; void (*__f)(void *) = (f); void *__x = (x); \
-if (__setjmp(__cb.__jb)) __f(__x), __pthread_unwind_next(&__cb); \
-__pthread_register_cancel(&__cb); {