Am Sonntag, den 20.09.2015, 20:29 +0200 schrieb Szabolcs Nagy: > * Julien Ramseier [2015-09-20 20:07:28 +0200]: > > pthread_join() never returns when calling it on a detached thread. > > I would expect it to return EINVAL instead. > [...] > in particular the glibc man page says EINVAL is correctly > reported in all cases which i dont think is true: there > is a race between the detached thread exiting an join. Yes, in general this is simply not possible. Otherwise the system would have to keep track of all threads that had been started by the process. The idea of detaching a thread (or starting it detached) is that the system resources that it occupies can be freed as soon as it exits. So just don't make the assumption that you may call join in such a situation. The resources of the thread and the thread ID may even already have been attributed to a new thread that started after the first one has exited. So you are not even sure which thread your id is naming. Jens -- :: INRIA Nancy Grand Est ::: Camus ::::::: ICube/ICPS ::: :: ::::::::::::::: office Strasbourg : +33 368854536 :: :: :::::::::::::::::::::: gsm France : +33 651400183 :: :: ::::::::::::::: gsm international : +49 15737185122 :: :: http://icube-icps.unistra.fr/index.php/Jens_Gustedt ::