Selaa lähdekoodia

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 vuotta sitten
vanhempi
sitoutus
e2915eeeea
1 muutettua tiedostoa jossa 1 lisäystä ja 2 poistoa
  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);