optimize pthread initialization
authorRich Felker <dalias@aerifal.cx>
Thu, 10 Mar 2011 01:21:23 +0000 (20:21 -0500)
committerRich Felker <dalias@aerifal.cx>
Thu, 10 Mar 2011 01:21:23 +0000 (20:21 -0500)
the set_tid_address returns the tid (which is also the pid when called
from the initial thread) so there is no need to make a separate
syscall to get pid/tid.

src/thread/pthread_self.c

index 028d387b13c4a7f02e07e0f622611e32490dc87e..d2de2cb8f0b207be46b091365b1cc11ad2249db1 100644 (file)
@@ -24,10 +24,10 @@ static int init_main_thread()
        main_thread.self = &main_thread;
        if (__set_thread_area(&main_thread) < 0)
                return -1;
-       syscall1(__NR_set_tid_address, (long)&main_thread.tid);
        main_thread.errno_ptr = __errno_location();
        libc.errno_location = errno_location;
-       main_thread.tid = main_thread.pid = getpid();
+       main_thread.tid = main_thread.pid = 
+               syscall1(__NR_set_tid_address, (long)&main_thread.tid);
        return 0;
 }