X-Git-Url: http://nsz.repo.hu/git/?p=musl;a=blobdiff_plain;f=src%2Fthread%2Fsynccall.c;h=fd377cb360b0bdd9b8f14fc0306148c436ee28e3;hp=2cd25e4bb2b84315ca4adb9c562d4592eebcb55a;hb=3b5e69052a867e9d99cf4c655d775bd06e3437f1;hpb=407d933052c310ebc5541dae2ecd8c4bd8f55fb9 diff --git a/src/thread/synccall.c b/src/thread/synccall.c index 2cd25e4b..fd377cb3 100644 --- a/src/thread/synccall.c +++ b/src/thread/synccall.c @@ -47,14 +47,6 @@ static void handler(int sig, siginfo_t *si, void *ctx) errno = old_errno; } -void __synccall_wait() -{ - struct chain *ch = cur; - sem_post(&ch->sem2); - while (sem_wait(&ch->sem)); - sem_post(&ch->sem); -} - void __synccall(void (*func)(void *), void *ctx) { pthread_t self; @@ -69,7 +61,8 @@ void __synccall(void (*func)(void *), void *ctx) pthread_rwlock_wrlock(&lock); - __syscall(SYS_rt_sigprocmask, SIG_BLOCK, (uint64_t[]){-1}, &oldmask, 8); + __syscall(SYS_rt_sigprocmask, SIG_BLOCK, SIGALL_SET, + &oldmask, __SYSCALL_SSLEN); sem_init(&chaindone, 0, 0); sem_init(&chainlock, 0, 1); @@ -101,7 +94,8 @@ void __synccall(void (*func)(void *), void *ctx) sa.sa_handler = SIG_IGN; __libc_sigaction(SIGSYNCCALL, &sa, 0); - __syscall(SYS_rt_sigprocmask, SIG_SETMASK, &oldmask, 0, 8); + __syscall(SYS_rt_sigprocmask, SIG_SETMASK, + &oldmask, 0, __SYSCALL_SSLEN); pthread_rwlock_unlock(&lock); }