فهرست منبع

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 سال پیش
والد
کامیت
e2915eeeea
1فایلهای تغییر یافته به همراه1 افزوده شده و 2 حذف شده
  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);