I said:
> The ordering of these shutdown hooks is the reverse of the ordering
> of the startup initialization of the modules. It looks like we'll
> need to rejigger the startup ordering ... and it also looks like that's
> going to be a rather ticklish issue. (See comments in BaseInit and
> InitPostgres.) Any thoughts on how to do it?
I eventually decided that the most reasonable solution was to leave the
startup sequence alone, and fold the ProcKill and
ShutdownBufferPoolAccess shutdown hooks together. This is a little ugly
but it seems to beat the alternatives. ShutdownBufferPoolAccess was
effectively assuming that LWLockReleaseAll was called just before it,
so the two modules aren't really independent anyway.
regards, tom lane