mirror of
git://git.musl-libc.org/musl
synced 2025-02-25 15:20:24 +00:00
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:
parent
0913560a3f
commit
e2915eeeea
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user