clean up pthread_sigmask/sigprocmask dependency order

it's nicer for the function that doesn't use errno to be independent,
and have the other one call it. saves some time and avoids clobbering
errno.
This commit is contained in:
Rich Felker
2011-07-30 21:09:14 -04:00
parent 544ee752cd
commit ad5881842e
2 changed files with 7 additions and 11 deletions

View File

@ -1,14 +1,10 @@
#include <signal.h>
#include <errno.h>
#include "syscall.h"
#include "libc.h"
#include "pthread_impl.h"
int sigprocmask(int how, const sigset_t *set, sigset_t *old)
{
if (how > 2U) {
errno = EINVAL;
return -1;
}
return syscall(SYS_rt_sigprocmask, how, set, old, 8);
int r = pthread_sigmask(how, set, old);
if (!r) return r;
errno = r;
return -1;
}

View File

@ -1,10 +1,10 @@
#include <signal.h>
#include <errno.h>
#include <pthread.h>
#include "syscall.h"
int pthread_sigmask(int how, const sigset_t *set, sigset_t *old)
{
int ret = sigprocmask(how, set, old);
if (ret) return errno;
return 0;
if (how > 2U) return EINVAL;
return -__syscall(SYS_rt_sigprocmask, how, set, old, 8);
}