+void __do_cleanup_push(struct __ptcb *cb, void (*f)(void *), void *x)
+{
+ struct pthread *self = pthread_self();
+ cb->__next = self->cancelbuf;
+ self->cancelbuf = cb;
+}
+
+void __do_cleanup_pop(struct __ptcb *cb, int run)
+{
+ __pthread_self()->cancelbuf = cb->__next;
+}
+