Ver Fonte

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.
Rich Felker há 14 anos atrás
pai
commit
e2915eeeea
1 ficheiros alterados com 1 adições e 2 exclusões
  1. 1 2
      src/process/fork.c

+ 1 - 2
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);