unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#2930: 23.0.92; `accept-process-output' and `sleep-for' do not run sentinels
@ 2009-08-16  1:58 Chong Yidong
  2009-08-17 15:36 ` Stefan Monnier
       [not found] ` <mailman.4807.1250524020.2239.bug-gnu-emacs@gnu.org>
  0 siblings, 2 replies; 7+ messages in thread
From: Chong Yidong @ 2009-08-16  1:58 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 2930, Markus Triska

> The documentation for sentinels states:
>
>    A program can wait, so that sentinels will run, by calling
>    `sit-for' or `sleep-for' (...), or `accept-process-output' (...).
>
> However, when I do M-x eval-region RET on the following forms in
> "emacs -Q", then Emacs loops unexpectedly:
>
>    (defun my-sentinel (proc str)
>      (setq my-finished t))
>
>    (let ((p (start-process "bc" nil "bc"))
>          my-finished)
>      (set-process-sentinel p 'my-sentinel)
>      (process-send-string p "quit\n")
>      (while (not my-finished)
>        (accept-process-output nil 0.1)))

The trouble is that accept-process-output passes a zero DO_DISPLAY
argument to wait_reading_process_output (process.c:4306).  When
DO_DISPLAY is zero, status notifications are not performed
(process.c:4763).

Having accept-process-output pass a non-zero DO_DISPLAY argument to
wait_reading_process_output fixes this problem, but I don't know what
ramifications this would have.

Stefan, WDYT?





^ permalink raw reply	[flat|nested] 7+ messages in thread
* bug#2930: 23.0.92; `accept-process-output' and `sleep-for' do not run sentinels
@ 2009-04-08 18:30 Markus Triska
  2009-04-08 21:11 ` Stefan Monnier
       [not found] ` <mailman.4941.1239225840.31690.bug-gnu-emacs@gnu.org>
  0 siblings, 2 replies; 7+ messages in thread
From: Markus Triska @ 2009-04-08 18:30 UTC (permalink / raw)
  To: emacs-pretest-bug


The documentation for sentinels states:

   A program can wait, so that sentinels will run, by calling
   `sit-for' or `sleep-for' (...), or `accept-process-output' (...).

However, when I do M-x eval-region RET on the following forms in
"emacs -Q", then Emacs loops unexpectedly:

   (defun my-sentinel (proc str)
     (setq my-finished t))

   (let ((p (start-process "bc" nil "bc"))
         my-finished)
     (set-process-sentinel p 'my-sentinel)
     (process-send-string p "quit\n")
     (while (not my-finished)
       (accept-process-output nil 0.1)))

When I replace the call of `accept-process-output' with (sleep-for
0.1), it also does not run the sentinel. (sit-for 0.1) works as
documented, but is not a good alternative for the other functions in
this case: If keyboard input is available, `sit-for' returns
immediately, so it is currently unfortunately also necessary to
discard keyboard input to make such a loop reliably run the sentinel.

In GNU Emacs 23.0.92.2 (i386-apple-darwin9.6.1, GTK+ Version 2.14.7)
 of 2009-04-05 on mt-imac.local
Windowing system distributor `The X.Org Foundation', version 11.0.10402000
configured using `configure  '--with-tiff=no''

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: en.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default-enable-multibyte-characters: t






^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2009-08-17 21:04 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-08-16  1:58 bug#2930: 23.0.92; `accept-process-output' and `sleep-for' do not run sentinels Chong Yidong
2009-08-17 15:36 ` Stefan Monnier
2009-08-17 21:04   ` Chong Yidong
     [not found] ` <mailman.4807.1250524020.2239.bug-gnu-emacs@gnu.org>
2009-08-17 16:34   ` Markus Triska
  -- strict thread matches above, loose matches on Subject: below --
2009-04-08 18:30 Markus Triska
2009-04-08 21:11 ` Stefan Monnier
     [not found] ` <mailman.4941.1239225840.31690.bug-gnu-emacs@gnu.org>
2009-04-08 21:29   ` Markus Triska

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).