> I have a use-case for keeping the reference counting in place though. It's
> use of rseq in signal handlers.

Would this be solved by saying that the rseq api will return an error if you 
register and there's already a block registered. In this case the signal 
handler would register the rseq abi area just as the non-signal code is trying 
to do the same. The non-signal code would see this error code and realize that 
its job had been done for it and then go on it's way.

It would be unsafe for signal handler code to *unregister* the area, but I 
don't think that's necessary.

Basically we'd support a refcount of either 0 or 1, but nothing else.

If a signal handler registers the ABI area, how will it ensure the ABI is 
cleaned up at thread exit? I can't imagine pthread_key is signal safe.

Reply via email to