Cygwin: thread: Reset _my_tls.tid if it's pthread_null in init_mainthread().
Currently, _my_tls.tid is set to pthread_null if pthread::self() is called before pthread::init_mainthread(). As a result, pthread:: init_mainthread() does not set _my_tls.tid appropriately. Due to this, pthread_join() fails in LDAP environment if the program is the first program which loads cygwin1.dll. https://cygwin.com/pipermail/cygwin/2023-June/253792.html With this patch, _my_tls.tid is re-initialized in pthread:: init_mainthread() if it is pthread_null. Reported-by: Mümin A. <muminaydin06@gmail.com> Reviewed-by: Corinna Vinschen <corinna@vinschen.de> Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
This commit is contained in:
parent
8c2867eebf
commit
fcaa1c4967
|
@ -364,7 +364,7 @@ void
|
|||
pthread::init_mainthread ()
|
||||
{
|
||||
pthread *thread = _my_tls.tid;
|
||||
if (!thread)
|
||||
if (!thread || thread == pthread_null::get_null_pthread ())
|
||||
{
|
||||
thread = new pthread ();
|
||||
if (!thread)
|
||||
|
|
Loading…
Reference in New Issue