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.
This commit is contained in:
Rich Felker 2011-04-12 17:52:14 -04:00
parent 0913560a3f
commit e2915eeeea

View File

@ -10,8 +10,7 @@ pid_t fork(void)
ret = syscall(SYS_fork); ret = syscall(SYS_fork);
if (libc.lock && !ret) { if (libc.lock && !ret) {
pthread_t self = __pthread_self(); pthread_t self = __pthread_self();
self->pid = syscall(SYS_getpid); self->tid = self->pid = syscall(SYS_getpid);
self->tid = syscall(SYS_gettid);
libc.threads_minus_1 = 0; libc.threads_minus_1 = 0;
} }
if (libc.fork_handler) libc.fork_handler(!ret); if (libc.fork_handler) libc.fork_handler(!ret);