diff options
author | Rich Felker <dalias@aerifal.cx> | 2011-04-12 17:52:14 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2011-04-12 17:52:14 -0400 |
commit | e2915eeeea244d3818d5eb7532ed35c6cf43c8fd (patch) | |
tree | 9b4038abca8971234ef2d63d9cabef950c6229c7 /src/process | |
parent | 0913560a3ffd4572d926b4f9bed3dbf3e6a1b3f0 (diff) | |
download | musl-e2915eeeea244d3818d5eb7532ed35c6cf43c8fd.zip musl-e2915eeeea244d3818d5eb7532ed35c6cf43c8fd.tar.gz musl-e2915eeeea244d3818d5eb7532ed35c6cf43c8fd.tar.bz2 |
speed up threaded fork
after fork, we have a new process and the pid is equal to the tid of
the new main thread. there is no need to make two separate syscalls to
obtain the same number.
Diffstat (limited to 'src/process')
-rw-r--r-- | src/process/fork.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/process/fork.c b/src/process/fork.c index 012b7ca..07fb79e 100644 --- a/src/process/fork.c +++ b/src/process/fork.c @@ -10,8 +10,7 @@ pid_t fork(void) ret = syscall(SYS_fork); if (libc.lock && !ret) { pthread_t self = __pthread_self(); - self->pid = syscall(SYS_getpid); - self->tid = syscall(SYS_gettid); + self->tid = self->pid = syscall(SYS_getpid); libc.threads_minus_1 = 0; } if (libc.fork_handler) libc.fork_handler(!ret); |