Date: Fri, 24 Mar 2006 18:46:00 +0800 From: David Xu <davidxu@freebsd.org> To: freebsd-threads@freebsd.org Cc: freebsd-hackers@freebsd.org Subject: Re: [patch] Re: dlopen() and dlclose() are not MT-safe? YES, esp. for libthr Message-ID: <200603241846.00579.davidxu@freebsd.org> In-Reply-To: <20060324084834.GE27116@deviant.kiev.zoral.com.ua> References: <44215FE9.2070602@highway.ne.jp> <20060323105440.GD27116@deviant.kiev.zoral.com.ua> <20060324084834.GE27116@deviant.kiev.zoral.com.ua>
index | next in thread | previous in thread | raw e-mail
ÔÚ Friday 24 March 2006 16:48£¬Kostik Belousov дµÀ£º > 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 will check libthr source code to see if I can fix it at the weekend. David Xuhelp
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200603241846.00579.davidxu>
