Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1442774496.24315.5.camel@inria.fr>
Date: Sun, 20 Sep 2015 20:41:36 +0200
From: Jens Gustedt <jens.gustedt@...ia.fr>
To: musl@...ts.openwall.com
Subject: Re: pthread_join stuck in infinite loop

Am Sonntag, den 20.09.2015, 20:29 +0200 schrieb Szabolcs Nagy:
> * Julien Ramseier <j.ramseier@...il.com> [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 ::




Download attachment "signature.asc" of type "application/pgp-signature" (182 bytes)

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.