fix stale locks left behind when pthread_create fails
[musl] / src / thread / cancellation.c
1 #include "pthread_impl.h"
2
3 static void dummy(struct __ptcb *cb)
4 {
5 }
6 weak_alias(dummy, __do_cleanup_push);
7 weak_alias(dummy, __do_cleanup_pop);
8
9 void _pthread_cleanup_push(struct __ptcb *cb, void (*f)(void *), void *x)
10 {
11         cb->__f = f;
12         cb->__x = x;
13         __do_cleanup_push(cb);
14 }
15
16 void _pthread_cleanup_pop(struct __ptcb *cb, int run)
17 {
18         __do_cleanup_pop(cb);
19         if (run) cb->__f(cb->__x);
20 }