Pārlūkot izejas kodu

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 14 gadi atpakaļ
vecāks
revīzija
e2915eeeea
1 mainītis faili ar 1 papildinājumiem un 2 dzēšanām
  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);