On today's systems fork() will hardly fail, thus removed the fork retry loops.
[mmh] / sbr / push.c
index 70fba6c..eb6011a 100644 (file)
@@ -15,34 +15,30 @@ void
 push(void)
 {
        pid_t pid;
-       int i;
 
-       for (i = 0; (pid = fork()) == -1 && i < 5; i++)
-               sleep (5);
+       switch (pid = fork()) {
+       case -1:
+               /* fork error */
+               advise(NULL, "unable to fork, so can't push...");
+               break;
 
-       switch (pid) {
-               case -1:
-                       /* fork error */
-                       advise (NULL, "unable to fork, so can't push...");
-                       break;
-
-               case 0:
-                       /* child, block a few signals and continue */
-                       SIGNAL (SIGHUP, SIG_IGN);
-                       SIGNAL (SIGINT, SIG_IGN);
-                       SIGNAL (SIGQUIT, SIG_IGN);
-                       SIGNAL (SIGTERM, SIG_IGN);
+       case 0:
+               /* child, block a few signals and continue */
+               SIGNAL(SIGHUP, SIG_IGN);
+               SIGNAL(SIGINT, SIG_IGN);
+               SIGNAL(SIGQUIT, SIG_IGN);
+               SIGNAL(SIGTERM, SIG_IGN);
 #ifdef SIGTSTP
-                       SIGNAL (SIGTSTP, SIG_IGN);
-                       SIGNAL (SIGTTIN, SIG_IGN);
-                       SIGNAL (SIGTTOU, SIG_IGN);
+               SIGNAL(SIGTSTP, SIG_IGN);
+               SIGNAL(SIGTTIN, SIG_IGN);
+               SIGNAL(SIGTTOU, SIG_IGN);
 #endif
-                       freopen ("/dev/null", "r", stdin);
-                       freopen ("/dev/null", "w", stdout);
-                       break;
+               freopen("/dev/null", "r", stdin);
+               freopen("/dev/null", "w", stdout);
+               break;
 
-               default:
-                       /* parent, just exit */
-                       done (0);
+       default:
+               /* parent, just exit */
+               done(0);
        }
 }