Bug#42850 race condition in my_thr_init.c

- Create the "dummy" thread joinable and wait for it to
   exit before continuing in 'my_thread_global_init'
 - This way we know that the pthread library is initialized
   by one thread only
This commit is contained in:
Magnus Blåudd 2009-09-24 08:30:31 +02:00
parent f280974393
commit 9eab1cdb9a

View file

@ -107,10 +107,11 @@ my_bool my_thread_global_init(void)
pthread_attr_t dummy_thread_attr;
pthread_attr_init(&dummy_thread_attr);
pthread_attr_setdetachstate(&dummy_thread_attr, PTHREAD_CREATE_DETACHED);
pthread_attr_setdetachstate(&dummy_thread_attr, PTHREAD_CREATE_JOINABLE);
pthread_create(&dummy_thread,&dummy_thread_attr,
nptl_pthread_exit_hack_handler, NULL);
if (pthread_create(&dummy_thread,&dummy_thread_attr,
nptl_pthread_exit_hack_handler, NULL) == 0)
(void)pthread_join(dummy_thread, NULL);
}
#endif /* TARGET_OS_LINUX */