From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: YAMAMOTO Mitsuharu Newsgroups: gmane.emacs.bugs Subject: bug#26397: [PATCH] Use vfork if possible on Darwin (bug#26397) Date: Mon, 10 Apr 2017 10:11:16 +0900 Organization: Faculty of Science, Chiba University Message-ID: References: <20170409191849.GA67152@breton.holly.idiocy.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII X-Trace: blaine.gmane.org 1491786732 2387 195.159.176.226 (10 Apr 2017 01:12:12 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 10 Apr 2017 01:12:12 +0000 (UTC) User-Agent: Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.8 (=?UTF-8?Q?Shij=C5=8D?=) APEL/10.6 Emacs/22.3 (sparc-sun-solaris2.8) MULE/5.0 (SAKAKI) Cc: 26397@debbugs.gnu.org, Alan Third To: Aaron Jensen Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Apr 10 03:12:07 2017 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cxNsD-0000VK-Uf for geb-bug-gnu-emacs@m.gmane.org; Mon, 10 Apr 2017 03:12:06 +0200 Original-Received: from localhost ([::1]:60136 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cxNsJ-0006MV-Kt for geb-bug-gnu-emacs@m.gmane.org; Sun, 09 Apr 2017 21:12:11 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:59421) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cxNsD-0006MF-IA for bug-gnu-emacs@gnu.org; Sun, 09 Apr 2017 21:12:06 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cxNsA-0005o0-DA for bug-gnu-emacs@gnu.org; Sun, 09 Apr 2017 21:12:05 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:42123) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cxNsA-0005nq-9d for bug-gnu-emacs@gnu.org; Sun, 09 Apr 2017 21:12:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1cxNsA-0005Ig-0s for bug-gnu-emacs@gnu.org; Sun, 09 Apr 2017 21:12:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: YAMAMOTO Mitsuharu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 10 Apr 2017 01:12:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 26397 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 26397-submit@debbugs.gnu.org id=B26397.149178668320323 (code B ref 26397); Mon, 10 Apr 2017 01:12:01 +0000 Original-Received: (at 26397) by debbugs.gnu.org; 10 Apr 2017 01:11:23 +0000 Original-Received: from localhost ([127.0.0.1]:40322 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cxNrX-0005Hj-D8 for submit@debbugs.gnu.org; Sun, 09 Apr 2017 21:11:23 -0400 Original-Received: from mathmail.math.s.chiba-u.ac.jp ([133.82.132.2]:61692) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cxNrU-0005HX-7u for 26397@debbugs.gnu.org; Sun, 09 Apr 2017 21:11:21 -0400 Original-Received: from fermat1.math.s.chiba-u.ac.jp (fermat [192.168.32.10]) by mathmail.math.s.chiba-u.ac.jp (Postfix) with ESMTP id DE03FF08FB; Mon, 10 Apr 2017 10:11:11 +0900 (JST) (envelope-from mituharu@math.s.chiba-u.ac.jp) In-Reply-To: X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:131425 Archived-At: >>>>> On Sun, 9 Apr 2017 17:06:21 -0700, Aaron Jensen said: > 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. Then use "obsolete" ioctl TIOCNOTTY instead of setsid? I'm not familiar with this matter, so could someone check if this is OK? I confirmed that only the controlling terminal of the child process was detached. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp diff --git a/src/callproc.c b/src/callproc.c index 05048576ce..3f6df422f3 100644 --- a/src/callproc.c +++ b/src/callproc.c @@ -52,6 +52,8 @@ along with GNU Emacs. If not, see . */ #include "syswait.h" #include "blockinput.h" #include "frame.h" +#include "systty.h" +#include "keyboard.h" #ifdef MSDOS #include "msdos.h" @@ -626,7 +628,18 @@ call_process (ptrdiff_t nargs, Lisp_Object *args, int filefd, { unblock_child_signal (&oldset); +#ifdef DARWIN_OS + /* Darwin doesn't let us run setsid after a vfork, so use + TIOCNOTTY when necessary. */ + int j = emacs_open (DEV_TTY, O_RDWR, 0); + if (j >= 0) + { + ioctl (j, TIOCNOTTY, 0); + emacs_close (j); + } +#else setsid (); +#endif /* Emacs ignores SIGPIPE, but the child should not. */ signal (SIGPIPE, SIG_DFL);