Browse Source

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.
rs-1.0
Rich Felker 15 years ago
parent
commit
e2915eeeea
  1. 3
      src/process/fork.c

3
src/process/fork.c

@ -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…
Cancel
Save