__syscall(SYS_exit, 0);
}
+void __pthread_do_register(struct __ptcb *cb)
+{
+ struct pthread *self = pthread_self();
+ cb->__next = self->cancelbuf;
+ self->cancelbuf = cb;
+}
+
+void __pthread_do_unregister(struct __ptcb *cb)
+{
+ struct pthread *self = __pthread_self();
+ self->cancelbuf = self->cancelbuf->__next;
+}
+
static int start(void *p)
{
struct pthread *self = p;
struct pthread *self = pthread_self();
struct __ptcb cb = { .__next = self->cancelbuf };
self->result = result;
- __pthread_unwind_next(&cb);
+ __pthread_do_unwind(&cb);
}