From 75bb2b611db9d008796889263f6d09863fe81bdf Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Tue, 3 Jan 2006 19:54:08 +0000 Subject: [PATCH] Assume select() might modify struct timeout, so remove previous optimization. --- src/backend/postmaster/pgstat.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c index ef27046e95..a192b4e5c8 100644 --- a/src/backend/postmaster/pgstat.c +++ b/src/backend/postmaster/pgstat.c @@ -13,7 +13,7 @@ * * Copyright (c) 2001-2005, PostgreSQL Global Development Group * - * $PostgreSQL: pgsql/src/backend/postmaster/pgstat.c,v 1.117 2006/01/03 16:42:17 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/postmaster/pgstat.c,v 1.118 2006/01/03 19:54:08 momjian Exp $ * ---------- */ #include "postgres.h" @@ -1871,14 +1871,6 @@ pgstat_recvbuffer(void) msgbuffer = (char *) palloc(PGSTAT_RECVBUFFERSZ); /* - * Wait for some work to do; but not for more than 10 seconds. (This - * determines how quickly we will shut down after an ungraceful - * postmaster termination; so it needn't be very fast.) - */ - timeout.tv_sec = 10; - timeout.tv_usec = 0; - - /* * Loop forever */ for (;;) @@ -1918,6 +1910,15 @@ pgstat_recvbuffer(void) maxfd = writePipe; } + /* + * Wait for some work to do; but not for more than 10 seconds. (This + * determines how quickly we will shut down after an ungraceful + * postmaster termination; so it needn't be very fast.) struct timeout + * is modified by some operating systems. + */ + timeout.tv_sec = 10; + timeout.tv_usec = 0; + if (select(maxfd + 1, &rfds, &wfds, NULL, &timeout) < 0) { if (errno == EINTR) -- 2.11.0