aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2015-10-09 09:12:03 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2015-10-09 09:12:03 -0500
commit15e9457bbb3e6ba2485f88252e2f522c069f26c5 (patch)
treea777081fe004eed59d0cd874e84317a7fff0b166 /src
parent56f9d916327b3e256d655db278b62b850c931d91 (diff)
downloadpostgresql-15e9457bbb3e6ba2485f88252e2f522c069f26c5.tar.gz
postgresql-15e9457bbb3e6ba2485f88252e2f522c069f26c5.zip
Fix uninitialized-variable bug.
For some reason, neither of the compilers I usually use noticed the uninitialized-variable problem I introduced in commit 7e2a18a9161fee7e. That's hardly a good enough excuse though. Committing with brown paper bag on head. In addition to putting the operations in the right order, move the declaration of "now" inside the loop; there's no need for it to be outside, and that does wake up older gcc enough to notice any similar future problem. Back-patch to 9.4; earlier versions lack the time-to-SIGKILL stanza so there's no bug.
Diffstat (limited to 'src')
-rw-r--r--src/backend/postmaster/postmaster.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c
index ac18c41178c..91f8418da8d 100644
--- a/src/backend/postmaster/postmaster.c
+++ b/src/backend/postmaster/postmaster.c
@@ -1596,8 +1596,7 @@ ServerLoop(void)
{
fd_set readmask;
int nSockets;
- time_t now,
- last_lockfile_recheck_time,
+ time_t last_lockfile_recheck_time,
last_touch_time;
last_lockfile_recheck_time = last_touch_time = time(NULL);
@@ -1608,6 +1607,7 @@ ServerLoop(void)
{
fd_set rmask;
int selres;
+ time_t now;
/*
* Wait for a connection request to arrive.
@@ -1760,6 +1760,16 @@ ServerLoop(void)
#endif
/*
+ * Lastly, check to see if it's time to do some things that we don't
+ * want to do every single time through the loop, because they're a
+ * bit expensive. Note that there's up to a minute of slop in when
+ * these tasks will be performed, since DetermineSleepTime() will let
+ * us sleep at most that long; except for SIGKILL timeout which has
+ * special-case logic there.
+ */
+ now = time(NULL);
+
+ /*
* If we already sent SIGQUIT to children and they are slow to shut
* down, it's time to send them SIGKILL. This doesn't happen
* normally, but under certain conditions backends can get stuck while
@@ -1778,15 +1788,6 @@ ServerLoop(void)
}
/*
- * Lastly, check to see if it's time to do some things that we don't
- * want to do every single time through the loop, because they're a
- * bit expensive. Note that there's up to a minute of slop in when
- * these tasks will be performed, since DetermineSleepTime() will let
- * us sleep at most that long.
- */
- now = time(NULL);
-
- /*
* Once a minute, verify that postmaster.pid hasn't been removed or
* overwritten. If it has, we force a shutdown. This avoids having
* postmasters and child processes hanging around after their database