mirror of
git://git.musl-libc.org/musl
synced 2025-01-18 21:01:01 +00:00
simplify cancellation push/pop slightly
no need to pass unnecessary extra arguments on to the core code in pthread_create.c. this just wastes cycles and code bloat.
This commit is contained in:
parent
25d575edc4
commit
cfd892fde9
@ -1,23 +1,20 @@
|
||||
#include "pthread_impl.h"
|
||||
|
||||
void __do_cleanup_push();
|
||||
void __do_cleanup_pop();
|
||||
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, f, x);
|
||||
__do_cleanup_push(cb);
|
||||
}
|
||||
|
||||
void _pthread_cleanup_pop(struct __ptcb *cb, int run)
|
||||
{
|
||||
__do_cleanup_pop(cb, run);
|
||||
__do_cleanup_pop(cb);
|
||||
if (run) cb->__f(cb->__x);
|
||||
}
|
||||
|
||||
static void dummy()
|
||||
{
|
||||
}
|
||||
weak_alias(dummy, __do_cleanup_push);
|
||||
weak_alias(dummy, __do_cleanup_pop);
|
||||
|
@ -43,14 +43,14 @@ void pthread_exit(void *result)
|
||||
__syscall(SYS_exit, 0);
|
||||
}
|
||||
|
||||
void __do_cleanup_push(struct __ptcb *cb, void (*f)(void *), void *x)
|
||||
void __do_cleanup_push(struct __ptcb *cb)
|
||||
{
|
||||
struct pthread *self = pthread_self();
|
||||
cb->__next = self->cancelbuf;
|
||||
self->cancelbuf = cb;
|
||||
}
|
||||
|
||||
void __do_cleanup_pop(struct __ptcb *cb, int run)
|
||||
void __do_cleanup_pop(struct __ptcb *cb)
|
||||
{
|
||||
__pthread_self()->cancelbuf = cb->__next;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user