]> granicus.if.org Git - postgresql/commitdiff
Fix pg_autovacuum -s flag to handle values > 2000 by using sleep()
authorBruce Momjian <bruce@momjian.us>
Wed, 11 May 2005 17:57:56 +0000 (17:57 +0000)
committerBruce Momjian <bruce@momjian.us>
Wed, 11 May 2005 17:57:56 +0000 (17:57 +0000)
instead of pg_usleep.

Backpatch to 8.0.X.

contrib/pg_autovacuum/pg_autovacuum.c

index 2388b3f351ab89315793df43f718e1ec69fbe8f0..d9cafa523dc20b164c9ec3bce3e666c879ba96f7 100644 (file)
@@ -4,7 +4,7 @@
  * Revisions by Christopher B. Browne, Liberty RMS
  * Win32 Service code added by Dave Page
  *
- * $PostgreSQL: pgsql/contrib/pg_autovacuum/pg_autovacuum.c,v 1.32 2005/05/11 14:53:43 momjian Exp $
+ * $PostgreSQL: pgsql/contrib/pg_autovacuum/pg_autovacuum.c,v 1.33 2005/05/11 17:57:56 momjian Exp $
  */
 
 #include "postgres_fe.h"
@@ -1749,7 +1749,16 @@ VacuumLoop(int argc, char **argv)
                        fflush(LOGOUTPUT);
                }
 
-               pg_usleep(sleep_secs * 1000000L);       /* Larger Pause between outer loops */
+               /* Larger Pause between outer loops */
+               /*
+                *      pg_usleep() is wrong here because its maximum is ~2000 seconds,
+                *      and we don't need signal interruptability on Win32 here.
+                */
+#ifndef WIN32
+               sleep(sleep_secs);                      /* Unix sleep is seconds */
+#else
+               sleep(sleep_secs * 1000);       /* Win32 sleep() is milliseconds */
+#endif
 
                gettimeofday(&then, 0); /* Reset time counter */