• Andres Freund's avatar
    Add a default local latch for use in signal handlers. · 59f71a0d
    Andres Freund authored
    To do so, move InitializeLatchSupport() into the new common process
    initialization functions, and add a new global variable MyLatch.
    
    MyLatch is usable as soon InitPostmasterChild() has been called
    (i.e. very early during startup). Initially it points to a process
    local latch that exists in all processes. InitProcess/InitAuxiliaryProcess
    then replaces that local latch with PGPROC->procLatch. During shutdown
    the reverse happens.
    
    This is primarily advantageous for two reasons: For one it simplifies
    dealing with the shared process latch, especially in signal handlers,
    because instead of having to check for MyProc, MyLatch can be used
    unconditionally. For another, a later patch that makes FEs/BE
    communication use latches, now can rely on the existence of a latch,
    even before having gone through InitProcess.
    
    Discussion: 20140927191243.GD5423@alap3.anarazel.de
    59f71a0d
walwriter.c 10.7 KB