bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Process sentinel not called in batch mode


From: Helmut Eller
Subject: Process sentinel not called in batch mode
Date: Tue, 15 Apr 2008 16:48:00 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux)

process-sentinels aren't called in batch mode.  I'm not sure if this is
a bug or the expected behavior, but I find this quite frustrating.
To reproduce the problem do:

$shell> cat test-sentinel.el

(defvar sentinel-called nil)

(defun start-subprocess ()
  (let ((proc (start-process "test" nil "bash" "-c" "sleep 1 ; exit 20")))
    (set-process-sentinel proc (lambda (proc msg)
                                 (message "sentinel: %S %s" proc msg)
                                 (setq sentinel-called t)))
    proc))

(defun print-status (proc)
  (message "%s status: %s exit-status: %s sentinel-called: %s" 
           proc (process-status proc) (process-exit-status proc) 
           sentinel-called))

(defun main ()
  (let ((proc (start-subprocess)))
    (while (not sentinel-called)
      (print-status proc)
      (sit-for 1)
      (accept-process-output proc 1))
    (print-status proc)))

(main)

$shell> emacs -Q -batch -l test-sentinel.el
test status: run exit-status: 0 sentinel-called: nil
test status: exit exit-status: 20 sentinel-called: nil
test status: exit exit-status: 20 sentinel-called: nil
test status: exit exit-status: 20 sentinel-called: nil
test status: exit exit-status: 20 sentinel-called: nil

[Exit 130 (SIGINT)]
$shell>

Emacs can obviously detect that the suprocess has terminated but the
sentinel is never called.  This used to work with Emacs 20.7 and for
certain variants of the 22.0.50 series.

Helmut.


In GNU Emacs 23.0.60.8 (i686-pc-linux-gnu, GTK+ Version 2.8.20)
 of 2008-03-14 on xaital
Windowing system distributor `The X.Org Foundation', version 11.0.70101000
configured using `configure  '--with-jpeg=no' '--with-gif=no' '--with-tiff=no' 
'--with-xft' '--without-dbus' '--without-sound''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: nil
  value of $XMODIFIERS: nil
  locale-coding-system: nil
  default-enable-multibyte-characters: nil

Major mode: Emacs-Lisp

Minor modes in effect:
  outline-minor-mode: t
  display-time-mode: t
  show-paren-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  global-auto-composition-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
<up> <up> <up> <down> <down> <up> <up> <up> <up> <up> 
<up> <up> <down> <down> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <left> <left> <left> 
<left> <left> <left> C-d C-M-x C-x C-s <down> C-e <down> 
<down> <up> C-x C-e <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> C-x C-e C-x b * M e <tab> <return> <up> <up> 
<up> <up> <up> <up> <up> <up> <up> <up> <up> C-x b 
<return> <up> <up> <up> <up> <up> <up> <up> <up> <up> 
<up> <up> <up> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> C-a C-d C-d 
C-d <up> <up> <up> <up> C-e <down> <down> C-e C-x C-s 
<down> <down> C-x C-s <up> <up> <up> <up> <up> <up> 
<up> <up> <up> <up> <up> <up> <up> <up> <up> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <up> <down> <down> <down> <down> 
<down> <down> <up> <up> C-x C-e <up> <up> <up> <up> 
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> 
<up> <up> <up> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> s e e <backspace> 
<backspace> l e e p 1 SPC ; SPC <left> <left> C-e C-x 
C-s <left> <left> <left> <left> <left> <left> <left> 
<left> <left> <left> <left> <left> <left> <left> <left> 
SPC C-x C-s <left> <left> <left> <left> <left> <left> 
<left> <left> <left> <left> <left> <left> <left> <left> 
<left> <left> <left> <left> <right> <right> b a C-x 
C-s M-x r e p SPC o <tab> SPC t SPC <backspace> r <tab> 
<return>

Recent messages:
test status: exit exit-status: 20 sentinel-called: t
"test status: exit exit-status: 20 sentinel-called: t"
Wrote /home/helmut/elisp/test-sentinel.el
(No changes need to be saved)
test status: run exit-status: 0 sentinel-called: t
"test status: run exit-status: 0 sentinel-called: t"
sentinel: #<process test> exited abnormally with code 20

Wrote /home/helmut/elisp/test-sentinel.el [3 times]
Making completion list... [3 times]





reply via email to

[Prev in Thread] Current Thread [Next in Thread]