From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#18626: 24.3.94; communication with subprocess is slow Date: Wed, 08 Oct 2014 16:53:12 +0300 Message-ID: <837g0ak6rb.fsf@gnu.org> References: <85wq8ge3gr.fsf@stephe-leake.org> <85d2a8dzkh.fsf@stephe-leake.org> <83lhowgrr3.fsf@gnu.org> <854mviej2x.fsf@stephe-leake.org> <8338b2oa0j.fsf@gnu.org> <85r3ymcr0u.fsf@stephe-leake.org> <85ppe2vgdk.fsf@stephe-leake.org> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1412776466 32617 80.91.229.3 (8 Oct 2014 13:54:26 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 8 Oct 2014 13:54:26 +0000 (UTC) Cc: 18626@debbugs.gnu.org To: Stephen Leake Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Oct 08 15:54:19 2014 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Xbrh4-0007Y4-Pg for geb-bug-gnu-emacs@m.gmane.org; Wed, 08 Oct 2014 15:54:18 +0200 Original-Received: from localhost ([::1]:36354 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xbrh2-0002V9-DV for geb-bug-gnu-emacs@m.gmane.org; Wed, 08 Oct 2014 09:54:16 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:36082) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xbrgt-0002Us-Mw for bug-gnu-emacs@gnu.org; Wed, 08 Oct 2014 09:54:13 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Xbrgo-00072W-8n for bug-gnu-emacs@gnu.org; Wed, 08 Oct 2014 09:54:07 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:46008) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xbrgo-00072S-5R for bug-gnu-emacs@gnu.org; Wed, 08 Oct 2014 09:54:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1Xbrgn-0007xb-TI for bug-gnu-emacs@gnu.org; Wed, 08 Oct 2014 09:54:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 08 Oct 2014 13:54:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 18626 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 18626-submit@debbugs.gnu.org id=B18626.141277638430528 (code B ref 18626); Wed, 08 Oct 2014 13:54:01 +0000 Original-Received: (at 18626) by debbugs.gnu.org; 8 Oct 2014 13:53:04 +0000 Original-Received: from localhost ([127.0.0.1]:37572 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Xbrfr-0007wK-QE for submit@debbugs.gnu.org; Wed, 08 Oct 2014 09:53:04 -0400 Original-Received: from mtaout20.012.net.il ([80.179.55.166]:41618) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Xbrfp-0007vs-Mp for 18626@debbugs.gnu.org; Wed, 08 Oct 2014 09:53:03 -0400 Original-Received: from conversion-daemon.a-mtaout20.012.net.il by a-mtaout20.012.net.il (HyperSendmail v2007.08) id <0ND400L00OYUYV00@a-mtaout20.012.net.il> for 18626@debbugs.gnu.org; Wed, 08 Oct 2014 16:52:59 +0300 (IDT) Original-Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout20.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0ND400MHNP8A2100@a-mtaout20.012.net.il>; Wed, 08 Oct 2014 16:52:59 +0300 (IDT) In-reply-to: <85ppe2vgdk.fsf@stephe-leake.org> X-012-Sender: halo1@inter.net.il X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.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-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:94297 > From: Stephen Leake > Cc: 18626@debbugs.gnu.org > Date: Wed, 08 Oct 2014 08:29:59 -0500 > > The cause for this is the Sleep in _sys_read_ahead in w32.c. This is > called from reader_thread after the wait for a single char read > succeeds. The default wait is 50 ms, set by the elisp variable > w32-pipe-read-delay. Setting that to 0 gives: > > (pipe-torture-read "/Projects/emacs/emacs-24.3.94/src/xdisp.c") > 0.180000, 0.095000 > > only a factor of 2 slower than command-line cat. > > w32-pipe-read-delay is a global variable. The comment in _sys_read_ahead > says there are problems with subprocess interaction when setting this to > 0 on some systems. If that is still true, we may need to change this to > a per-subprocess setting. > > In my real application, let-binding w32-pipe-read-delay for a short time > is possible, and a reasonable workaround. I think I will set that to -1, on the trunk, except on Windows 9X systems. That should cause the reader thread yield its time slice before returning. Can you see how this affects your use case? As for the effect of this on non-Windows 9X systems, I don't see the problem described in the comment with the "dir" command on Windows XP when I set this variable's value to zero. And running DOS programs from a w32 Emacs is much less probable use case these days, what with the proliferation of 64-bit Windows systems that don't have a DOS emulator. So I think we can safely make this value zero or -1 on modern systems. Thanks for tracking this down.