From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Spencer Baugh Newsgroups: gmane.emacs.devel Subject: Re: call-process should not block process filters from running Date: Wed, 28 Jun 2023 08:08:47 -0400 Message-ID: References: <87zg4j6bs4.fsf@yahoo.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="5414"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) To: emacs-devel@gnu.org Cancel-Lock: sha1:y3d+5NkKL7gHLyjbEWbjvj1TSOQ= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Jun 28 14:20:09 2023 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qEU9Y-0001BT-KW for ged-emacs-devel@m.gmane-mx.org; Wed, 28 Jun 2023 14:20:08 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qEU8e-00030C-O6; Wed, 28 Jun 2023 08:19:12 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qETyo-0007Pi-Uo for emacs-devel@gnu.org; Wed, 28 Jun 2023 08:09:06 -0400 Original-Received: from ciao.gmane.io ([116.202.254.214]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qETym-0002On-El for emacs-devel@gnu.org; Wed, 28 Jun 2023 08:09:01 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1qETyi-00085y-6l for emacs-devel@gnu.org; Wed, 28 Jun 2023 14:08:56 +0200 X-Injected-Via-Gmane: http://gmane.org/ Received-SPF: pass client-ip=116.202.254.214; envelope-from=ged-emacs-devel@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.249, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Wed, 28 Jun 2023 08:19:10 -0400 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:307282 Archived-At: Po Lu writes: > Spencer Baugh writes: > >> When Lisp code calls call-process, then while call-process is running, >> all Lisp is blocked from running, including process filters and timers >> created beforehand by other Lisp. This call-process behavior is >> harmful, but we can fix call-process to not behave this way. >> >> This call-process behavior is harmful: >> Many packages rely on their process filters and timers being able to >> run: >> - Packages which communicate over the network (such as ERC) >> rely on being able to respond to heartbeats and prevent timeouts. >> - Packages which respond to requests from other programs (such as EXWM) >> rely on being able to respond to those requests. >> A simple (shell-command "sleep 60") will cause most such packages to >> break or behave poorly. > > Have you considered that many programs may conversely rely on the fact > that call-process can not run Lisp through selection converters or > process filters? Yes. Those programs can continue to use call-process. Others which don't rely on this fact can be moved to a different interface which can run Lisp, to avoid this downside.