Re: [RFC PATCH v9 for 4.15 01/14] Restartable sequences system call
From: Ben Maurer
Date: Tue Oct 17 2017 - 12:42:25 EST
> 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.