mirror of
https://github.com/fluencelabs/musl
synced 2025-07-30 22:01:57 +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:
@@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user