[patch] Re: dlopen() and dlclose() are not MT-safe? YES, esp. for libthr

Kostik Belousov kostikbel at gmail.com
Fri Mar 24 08:48:43 UTC 2006


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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-threads/attachments/20060324/1ad45cb3/attachment.pgp


More information about the freebsd-threads mailing list