Don't setsid Scheme.
authorTaylor R Campbell <campbell@mumble.net>
Sun, 2 Jun 2013 15:33:41 +0000 (15:33 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Sun, 2 Jun 2013 15:33:43 +0000 (15:33 +0000)
If you want to detach from the controlling terminal, use a trivial
wrapper program that calls setsid and then exec (e.g., pgrphack from
daemontools), or add a primitive to Scheme to daemonize without race
conditions.

Hitting ^C at the terminal now works to interrupt Scheme in batch
mode, e.g. when run under make during the build.

src/microcode/uxtop.c

index da11c63f14c02fbd7c5f65865278b46a21e5fde1..9c9d0d9187fc3f257ad7b76525506685199838a5 100644 (file)
@@ -80,13 +80,6 @@ OS_initialize (void)
        || (isatty (STDIN_FILENO))
        || (isatty (STDOUT_FILENO))
        || (isatty (STDERR_FILENO)));
-    /* If none of the stdio streams is a terminal, disassociate us
-       from the controlling terminal so that we're not affected by
-       keyboard interrupts or hangup signals.  However, if we're
-       running under Emacs we don't want to do this, because we want
-       to receive a hangup signal if Emacs dies. */
-    if ((!interactive) && (!option_emacs_subprocess))
-      UX_setsid ();
     if (option_batch_mode)
       interactive = false;
     /* The argument passed to `UX_ctty_initialize' says whether to