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 | |
| parent | 0913560a3ffd4572d926b4f9bed3dbf3e6a1b3f0 (diff) | |
| download | musl-e2915eeeea244d3818d5eb7532ed35c6cf43c8fd.tar.gz | |
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.
| -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 012b7ca5..07fb79ed 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); | 
