From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Lars Ingebrigtsen Newsgroups: gmane.emacs.bugs Subject: bug#6079: 24.0.50; set-process-sentinel doesn't work inside sentinels Date: Wed, 21 Aug 2019 16:58:21 -0700 Message-ID: <87r25et6jm.fsf@mouse.gnus.org> References: Mime-Version: 1.0 Content-Type: text/plain Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="104364"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) Cc: 6079@debbugs.gnu.org To: Helmut Eller Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Aug 22 01:59:17 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1i0aVT-000QxX-FI for geb-bug-gnu-emacs@m.gmane.org; Thu, 22 Aug 2019 01:59:11 +0200 Original-Received: from localhost ([::1]:37168 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i0aVR-0003mT-Pl for geb-bug-gnu-emacs@m.gmane.org; Wed, 21 Aug 2019 19:59:09 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:52572) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i0aVM-0003mN-BN for bug-gnu-emacs@gnu.org; Wed, 21 Aug 2019 19:59:05 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i0aVL-0008Gz-5s for bug-gnu-emacs@gnu.org; Wed, 21 Aug 2019 19:59:04 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:56251) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1i0aVL-0008Go-2l for bug-gnu-emacs@gnu.org; Wed, 21 Aug 2019 19:59:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1i0aVK-0001VQ-W4 for bug-gnu-emacs@gnu.org; Wed, 21 Aug 2019 19:59:03 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 21 Aug 2019 23:59:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 6079 X-GNU-PR-Package: emacs Original-Received: via spool by 6079-submit@debbugs.gnu.org id=B6079.15664319115712 (code B ref 6079); Wed, 21 Aug 2019 23:59:02 +0000 Original-Received: (at 6079) by debbugs.gnu.org; 21 Aug 2019 23:58:31 +0000 Original-Received: from localhost ([127.0.0.1]:36838 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i0aUp-0001U3-1N for submit@debbugs.gnu.org; Wed, 21 Aug 2019 19:58:31 -0400 Original-Received: from quimby.gnus.org ([80.91.231.51]:45574) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i0aUn-0001Tu-F7 for 6079@debbugs.gnu.org; Wed, 21 Aug 2019 19:58:29 -0400 Original-Received: from 77.18.59.87.tmi.telenormobil.no ([77.18.59.87] helo=sandy) by quimby.gnus.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1i0aUj-0007mp-Bk; Thu, 22 Aug 2019 01:58:28 +0200 In-Reply-To: (Helmut Eller's message of "Sun, 02 May 2010 14:07:52 +0200") 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: 209.51.188.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:165544 Archived-At: Helmut Eller writes: > set-process-sentinel can't be used inside sentinels because > exec_sentinel_unwind always restores the old value. This code > > (let* ((proc (start-process "foo" nil "/bin/bash" "-c" "sleep 100")) > (a-called nil) > (sentinel-a (lambda (proc msg) > (message "a: %s" msg) > (setq a-called t))) > (b-called nil) > (sentinel-b (lambda (proc msg) > (message "b: %s" msg) > (set-process-sentinel proc sentinel-a) > (setq b-called t)))) > (set-process-sentinel proc sentinel-b) > (signal-process proc 'SIGSTOP) > (message "waiting for b") > (while (not b-called) > (accept-process-output proc)) > (signal-process proc 'SIGKILL) > (message "waiting for a") > (while (not a-called) > (accept-process-output proc))) > > prints: > > waiting for b > b: stopped (signal) > waiting for a > b: killed > > which means that sentinel-b was called twice. Since sentinel-b sets the > the process sentinel to sentinel-a I would expect that sentinel-b can > only be called once. (I'm going through old bug reports that have unfortunately gotten no attention yet.) I tried reproducing this bug in Emacs 27, but I get: waiting for b b: stopped (signal) waiting for a a: killed The exec_sentinel_unwind function no longer exists in Emacs, so the code in this area has changed in the nine years since you reported this bug. Do you still see this bug in more modern Emacs versions? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no