Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 24 Mar 2006 20:54:34 +0900
From:      Kazuaki Oda <kaakun@highway.ne.jp>
To:        Kostik Belousov <kostikbel@gmail.com>
Cc:        freebsd-hackers@freebsd.org, freebsd-threads@freebsd.org
Subject:   Re: [patch] Re: dlopen() and dlclose() are not MT-safe? YES,	esp. for libthr
Message-ID:  <4423DDFA.3090504@highway.ne.jp>
In-Reply-To: <20060324084834.GE27116@deviant.kiev.zoral.com.ua>
References:  <44215FE9.2070602@highway.ne.jp>	<20060322174312.GB27116@deviant.kiev.zoral.com.ua>	<20060322190725.GC27116@deviant.kiev.zoral.com.ua>	<4421BA34.8040908@highway.ne.jp>	<20060323105440.GD27116@deviant.kiev.zoral.com.ua> <20060324084834.GE27116@deviant.kiev.zoral.com.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
Kostik Belousov wrote:
> I did understand the purpose of the thread mask code in
> libexec/rtld/rtld_lock.c, or, more precisely, the condition where this code
> works (for the context, see the mails with same subject on freebsd-hackers).
> 
> Look, that code assumes that blocking async signals would stop thread
> scheduler from doing preemption of the current thread. This works
> for libc_r, but fails in libpthread and libthr cases. libpthread provides
> implementation of the locks for rtld. But libthr does not !
> 
> As result, rtld exhibit races when used with libthr. In other words,
> libthr needs code to do proper locking.
> 
> Do you agree ? Does somebody already planned to do this work ?
> 
> Best regards,
> Kostik Belousov

I'm a bit confused.  Do you mean the following?

* The current implementation of rtld has a problem both with
  libpthread and libthr.  It works only with libc_r.
* In libpthread case, the problem goes away if we modify rtld code.
* In libthr case, in addition to above, we must modify libthr code to
  provide implementation of the locks for rtld.

right?

--
Kazuaki Oda



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4423DDFA.3090504>