GNU bug report logs -
#33839
26.1.90; Emacs occasionally fails to receive asynchronous subprocess output in batch mode
Previous Next
Reported by: Philipp <p.stephani2 <at> gmail.com>
Date: Sun, 23 Dec 2018 02:30:03 UTC
Severity: normal
Fixed in version 26.1.90
Done: Paul Eggert <eggert <at> cs.ucla.edu>
Bug is archived. No further changes may be made.
Full log
Message #11 received at 33839 <at> debbugs.gnu.org (full text, mbox):
Am So., 23. Dez. 2018 um 16:22 Uhr schrieb Eli Zaretskii <eliz <at> gnu.org>:
>
> > From: Philipp <p.stephani2 <at> gmail.com>
> > Date: Sun, 23 Dec 2018 03:28:53 +0100
> >
> > (with-temp-buffer
> > (let ((proc (make-process :name "test"
> > :command '("bash" "-c" "echo stdout; echo stderr >&2")
> > :buffer (current-buffer)
> > :connection-type 'pipe
> > :sentinel #'ignore
> > :noquery t
> > :coding '(utf-8-unix . utf-8-unix))))
> > (when (process-live-p proc)
> > (process-send-eof proc))
> > (while (process-live-p proc)
> > (accept-process-output proc))
> > (cl-assert (equal (buffer-string) "stdout\nstderr\n") :show-args)))
> >
> > Then evaluate this form repeatedly. Occasionally the buffer is empty
> > and the assertion triggers.
>
> Isn't there an inherent race condition here?
Maybe? If so, then it should be documented, with an explanation how to
write this in a race-free manner. (It seems waiting for the process
sentinel to run works reliably.)
This bug report was last modified 6 years and 144 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.