> Yup.  I had just come to the realization that we'd be best 
> off to treat the *entire* period from SpinAcquire to SpinRelease
> as a critical section for the purposes of die(). That is, response
> to SIGTERM will be held off until we have released the spinlock.
> Most of the places where we grab spinlocks would have to make such
> a critical section anyway, at least for large parts of the time that
> they are holding the spinlock, because they are manipulating shared
> data structures and the instantaneous intermediate states aren't always
> self-consistent.  So we might as well follow the KISS principle and
> just do START_CRIT_SECTION in SpinAcquire and END_CRIT_SECTION in
> SpinRelease.
> 
> Vadim, any objection?

No one for the moment. If we'll just add XXX_CRIT_SECTION
to SpinXXX funcs without changing anything else then it will be easy
to remove them later (in the event we'll find any problems with this),
so - do it.

Vadim

Reply via email to