From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: emacs-29 8bf4cdcf79: Avoid recursive process filters in lisp/jsonrpc.el (bug#60088) Date: Sat, 17 Dec 2022 10:37:33 -0500 Message-ID: References: <167118072395.30479.8819833637573037468@vcs2.savannah.gnu.org> <20221216085204.43B07C04961@vcs2.savannah.gnu.org> <87h6xufv4v.fsf@neverwas.me> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="6654"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: =?windows-1252?B?Sm/jbyBU4XZvcmE=?= , emacs-devel@gnu.org To: F. Jason Park Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Dec 17 16:38:32 2022 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 1p6ZGh-0001ZE-QN for ged-emacs-devel@m.gmane-mx.org; Sat, 17 Dec 2022 16:38:31 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p6ZG3-0001OA-VM; Sat, 17 Dec 2022 10:37:51 -0500 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 1p6ZG2-0001M7-0x for emacs-devel@gnu.org; Sat, 17 Dec 2022 10:37:50 -0500 Original-Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p6ZG0-0007VF-9l for emacs-devel@gnu.org; Sat, 17 Dec 2022 10:37:49 -0500 Original-Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 7A80444072F; Sat, 17 Dec 2022 10:37:46 -0500 (EST) Original-Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id C510D44087B; Sat, 17 Dec 2022 10:37:40 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1671291460; bh=Lpp1wL+kMIFBROYquImX+Po9HTVK62NpcgA/7Vv/RfU=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=KlJxtByEZ2NWbKsj5+tafDb58wimR+2o8Wjz+cRLVD0az7gQiNK/6ikMrd/sibdNU prJA8wVrJ5NA2/kK0RuGInKhAOravLmzif43MgxeTolp/jWfk11mVAkpyXghx3iB9P Zz0khUS32XzAO/UD+u04oOgylzbtsc1wjgtXzI+BVURm1h7r76DM3YMBV3ji2tQvp7 ZtGgfCwKS7CZ6g10I0SozGBgbN0SaATBDEkj3wvWfYSJ03jrMFLYpbPkag9kSNVS+w dQoiHNON0cKdwBSQBJ+SY0J+eD0wpWysYjP2plKl1emBETJS/wMEB/8XW2vJ9KlVjI nLxurgwOUvkAw== Original-Received: from pastel (unknown [45.72.193.52]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 89DF31202EE; Sat, 17 Dec 2022 10:37:40 -0500 (EST) In-Reply-To: <87h6xufv4v.fsf@neverwas.me> (F. Jason Park's message of "Fri, 16 Dec 2022 21:37:36 -0800") Received-SPF: pass client-ip=132.204.25.50; envelope-from=monnier@iro.umontreal.ca; helo=mailscanner.iro.umontreal.ca X-Spam_score_int: -42 X-Spam_score: -4.3 X-Spam_bar: ---- X-Spam_report: (-4.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action 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:301564 Archived-At: F. Jason Park [2022-12-16 21:37:36] wrote: > Stefan Monnier writes: >>> Avoid recursive process filters in lisp/jsonrpc.el (bug#60088) >> >> BTW, this has bitten us in various other cases, we should fix it once >> and for all in the C code by marking the process as "busy" while we're >> running the filters so we never run filters recursively. >> [ If we ever bump into a case where recursive filters are needed, we >> can then add some function to remove the "busy" mark. >> Calling (accept-process-output PROC) should naturally mark PROC as >> not-busy. ] >> >> >> Stefan > > A possibly related discussion from the bug archive: > > https://lists.gnu.org/archive/html/bug-gnu-emacs/2022-03/msg01211.html Indeed. I think this points to the need to "spawn" a piece of code to be executed "ASAP" but not necessarily immediately. This way when a process filter needs to send something in response to what it received, it can just "spawn" the send, so we can return from the process filter before the send finishes. Stefan