On 05/08/2014 03:41 PM, Matthew Dempsky wrote:
On Wed, May 7, 2014 at 11:41 AM, Jason Merrill <[email protected]> wrote:
On 05/07/2014 01:15 PM, Matthew Dempsky wrote:

+Additionally, the registration increments the reference count for DSO
<code>d</code>.

+After <code>f(p)</code> returns, the reference count for DSO
<code>d</code> is decremented.

This seems overly specific to the glibc implementation; I would say
something more generic, perhaps just that the effect of dlclose with pending
cleanups is undefined.

Any suggestions on appropriate relaxed wording?  Should I just remove
this wording altogether?

"The effect of dlclosing a DSO with registered thread cleanups is undefined."

Is it worth instead including some informative text reminding that
C++11 requires destruction of objects with thread storage duration to
be sequenced before destruction of objects with static storage
duration, so implementations should make sure they DSO isn't unloaded
(and its static objects destroyed) until all outstanding thread-local
registrations have run (e.g., by holding a DSO reference count in the
registration)?

That seems reasonable, I was just trying to allow for implementations that don't have any way to implement that, because they can't change the dynamic loader.

Jason

_______________________________________________
cxx-abi-dev mailing list
[email protected]
http://sourcerytools.com/cgi-bin/mailman/listinfo/cxx-abi-dev

Reply via email to