diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2007-08-09 01:18:43 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2007-08-09 01:18:43 +0000 |
commit | bbe3c02d3833f431aaf3271b26a3dfe5d922ddc0 (patch) | |
tree | 5b381786b3af1dd7ad5f71062e1187fe0b898682 /src/backend/utils/adt/regexp.c | |
parent | c556b29a1199babc672b81065fe74fb50657c451 (diff) | |
download | postgresql-bbe3c02d3833f431aaf3271b26a3dfe5d922ddc0.tar.gz postgresql-bbe3c02d3833f431aaf3271b26a3dfe5d922ddc0.zip |
Revise postmaster startup/shutdown logic to eliminate the problem that a
constant flow of new connection requests could prevent the postmaster from
completing a shutdown or crash restart. This is done by labeling child
processes that are "dead ends", that is, we know that they were launched only
to tell a client that it can't connect. These processes are managed
separately so that they don't confuse us into thinking that we can't advance
to the next stage of a shutdown or restart sequence, until the very end
where we must wait for them to drain out so we can delete the shmem segment.
Per discussion of a misbehavior reported by Keaton Adams.
Since this code was baroque already, and my first attempt at fixing the
problem made it entirely impenetrable, I took the opportunity to rewrite it
in a state-machine style. That eliminates some duplicated code sections and
hopefully makes everything a bit clearer.
Diffstat (limited to 'src/backend/utils/adt/regexp.c')
0 files changed, 0 insertions, 0 deletions