Subject: Re: [PATCH] Use vfork if possible on Darwin (bug#26397)

From: Aaron Jensen <[email-masked]>
Date: Sun, 9 Apr 2017 17:06:21 -0700

On Sun, Apr 9, 2017 at 4:46 PM, YAMAMOTO Mitsuharu
<[email-masked]> wrote:
> According to ChangeLog, setsid in callproc.c seems to be used for
> disconnecting from the controlling terminal (so as to avoid using
> /dev/tty accidentally?).
>
> 1997-06-11  Paul Eggert  <[email-masked]>
>
>         * callproc.c (Fcall_process): Use setsid to disconnect child
>         process from controlling terminal.
>
> If that is the case (i.e., if we don't have to make the child process
> a session leader), then we don't need setsid when the Emacs process
> doesn't have the controlling terminal, which is common for Mac-native
> GUI sessions.  It doesn't apply for TTY or X11 sessions, but fork is
> not that slow there.

For me, this slows down call-process in TTY emacs by 3ms (from
2.5ms->5.5ms). I typically launch a GUI emacs and connect to the
server in TTY via emacsclient, and in that scenario this patch does
not slow down call-process in the TTY, but it will affect those who
use TTY only, it seems.

Aaron