Use pg_usleep() not sleep(), per Andrew Dunstan.
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 17 Nov 2004 17:50:20 +0000 (17:50 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 17 Nov 2004 17:50:20 +0000 (17:50 +0000)
src/backend/postmaster/pgarch.c

index 667b91bcec7712bb6a31af9e978fd33c44825414..6f52b6e7ab21f203b4024e893ef59915a6a69615 100644 (file)
@@ -19,7 +19,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/postmaster/pgarch.c,v 1.10 2004/11/09 13:01:26 petere Exp $
+ *   $PostgreSQL: pgsql/src/backend/postmaster/pgarch.c,v 1.11 2004/11/17 17:50:20 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -338,15 +338,14 @@ pgarch_MainLoop(void)
 
        /*
         * There shouldn't be anything for the archiver to do except to
-        * wait for a signal, so we could use pause(3) here... ...however,
-        * the archiver exists to protect our data, so she wakes up
-        * occasionally to allow herself to be proactive. In particular
-        * this avoids getting stuck if a signal arrives just before we
-        * enter sleep().
+        * wait for a signal, ... however, the archiver exists to 
+        * protect our data, so she wakes up occasionally to allow 
+        * herself to be proactive. In particular this avoids getting 
+        * stuck if a signal arrives just before we sleep.
         */
        if (!wakened)
        {
-           sleep(PGARCH_AUTOWAKE_INTERVAL);
+           pg_usleep(PGARCH_AUTOWAKE_INTERVAL * 1000000L);
 
            curtime = time(NULL);
            if ((unsigned int) (curtime - last_copy_time) >=