about summary refs log tree commit diff
path: root/src/env
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2015-04-10 00:54:48 -0400
committerRich Felker <dalias@aerifal.cx>2015-04-10 00:54:48 -0400
commit4e98cce1c529a304d7b55b5455078b9532f93e9b (patch)
treea824ce64116146e20de6264fe4e91405fd1a2124 /src/env
parent12e1e324683a1d381b7f15dd36c99b37dd44d940 (diff)
downloadmusl-4e98cce1c529a304d7b55b5455078b9532f93e9b.tar.gz
musl-4e98cce1c529a304d7b55b5455078b9532f93e9b.tar.xz
musl-4e98cce1c529a304d7b55b5455078b9532f93e9b.zip
optimize out setting up robust list with kernel when not needed
as a result of commit 12e1e324683a1d381b7f15dd36c99b37dd44d940, kernel
processing of the robust list is only needed for process-shared
mutexes. previously the first attempt to lock any owner-tracked mutex
resulted in robust list initialization and a set_robust_list syscall.
this is no longer necessary, and since the kernel's record of the
robust list must now be cleared at thread exit time for detached
threads, optimizing it out is more worthwhile than before too.
Diffstat (limited to 'src/env')
-rw-r--r--src/env/__init_tls.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/env/__init_tls.c b/src/env/__init_tls.c
index e651c7a7..ac4d9e7f 100644
--- a/src/env/__init_tls.c
+++ b/src/env/__init_tls.c
@@ -18,6 +18,7 @@ int __init_tp(void *p)
 	libc.has_thread_pointer = 1;
 	td->tid = __syscall(SYS_set_tid_address, &td->tid);
 	td->locale = &libc.global_locale;
+	td->robust_list.head = &td->robust_list.head;
 	return 0;
 }