Thomas Munro <thomas.mu...@gmail.com> writes:
> It may be madness to try to work around this, but I wonder if we could
> use a static local variable that we update with atomic compare
> exhange, inside PG_SIGNAL_HANDLER_ENTRY(), and
> PG_SIGNAL_HANDLER_EXIT() macros that do nothing on every other system.
> On entry, if you can do 0->1 it means you are allowed to run the
> function.  If it's non-zero, set n->n+1 and return immediately: signal
> blocked, but queued for later.  On exit, you CAS n->0.  If n was > 1,
> then you have to jump back to the top and run the function body again.

And ... we're expending all this effort for what exactly?

                        regards, tom lane


Reply via email to