| Index: fusl/src/thread/pthread_cleanup_push.c
|
| diff --git a/fusl/src/thread/pthread_cleanup_push.c b/fusl/src/thread/pthread_cleanup_push.c
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..9b21764b56b0bea71300b30dedaf950248135112
|
| --- /dev/null
|
| +++ b/fusl/src/thread/pthread_cleanup_push.c
|
| @@ -0,0 +1,20 @@
|
| +#include "pthread_impl.h"
|
| +
|
| +static void dummy(struct __ptcb *cb)
|
| +{
|
| +}
|
| +weak_alias(dummy, __do_cleanup_push);
|
| +weak_alias(dummy, __do_cleanup_pop);
|
| +
|
| +void _pthread_cleanup_push(struct __ptcb *cb, void (*f)(void *), void *x)
|
| +{
|
| + cb->__f = f;
|
| + cb->__x = x;
|
| + __do_cleanup_push(cb);
|
| +}
|
| +
|
| +void _pthread_cleanup_pop(struct __ptcb *cb, int run)
|
| +{
|
| + __do_cleanup_pop(cb);
|
| + if (run) cb->__f(cb->__x);
|
| +}
|
|
|