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) >=