diff options
author | Rich Felker <dalias@aerifal.cx> | 2011-04-06 20:27:07 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2011-04-06 20:27:07 -0400 |
commit | b2486a8922bf4977bd82c8190258e39de28c053b (patch) | |
tree | 7e6a928a7fb8f84ab835ea9009ddb447487b44e4 /src/unistd/setregid.c | |
parent | 74950b336d27532718428c7f5f98409c74f30819 (diff) | |
download | musl-b2486a8922bf4977bd82c8190258e39de28c053b.tar.gz musl-b2486a8922bf4977bd82c8190258e39de28c053b.tar.xz musl-b2486a8922bf4977bd82c8190258e39de28c053b.zip |
move rsyscall out of pthread_create module
this is something of a tradeoff, as now set*id() functions, rather than pthread_create, are what pull in the code overhead for dealing with linux's refusal to implement proper POSIX thread-vs-process semantics. my motivations are: 1. it's cleaner this way, especially cleaner to optimize out the rsyscall locking overhead from pthread_create when it's not needed. 2. it's expected that only a tiny number of core system programs will ever use set*id() functions, whereas many programs may want to use threads, and making thread overhead tiny is an incentive for "light" programs to try threads.
Diffstat (limited to 'src/unistd/setregid.c')
-rw-r--r-- | src/unistd/setregid.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/unistd/setregid.c b/src/unistd/setregid.c index ff2607dc..49c59858 100644 --- a/src/unistd/setregid.c +++ b/src/unistd/setregid.c @@ -4,6 +4,5 @@ int setregid(gid_t rgid, gid_t egid) { - if (libc.rsyscall) return libc.rsyscall(__NR_setregid, rgid, egid, 0, 0, 0, 0); - return syscall(SYS_setregid, rgid, egid); + return __rsyscall(__NR_setregid, rgid, egid, 0, 0, 0, 0); } |