From: Jim Porter Date: Wed, 7 Sep 2022 20:58:31 +0000 (-0700) Subject: ; Fix a race condition in an Eshell test X-Git-Tag: emacs-29.0.90~1856^2~655 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=ef17ba83709794fe0342743397f0e68b90ea1f69;p=emacs.git ; Fix a race condition in an Eshell test * test/lisp/eshell/esh-proc-tests.el (esh-proc-test/sigpipe-exits-process): Use "|&" when creating the pipeline to prevent an extra pipe process from being started. --- diff --git a/test/lisp/eshell/esh-proc-tests.el b/test/lisp/eshell/esh-proc-tests.el index 52a0d1eeeb8..abe363bee0d 100644 --- a/test/lisp/eshell/esh-proc-tests.el +++ b/test/lisp/eshell/esh-proc-tests.el @@ -128,8 +128,10 @@ (eshell-match-command-output ;; The first command is like `yes' but slower. This is to prevent ;; it from taxing Emacs's process filter too much and causing a - ;; hang. - (concat "sh -c 'while true; do echo y; sleep 1; done' | " + ;; hang. Note that we use "|&" to connect the processes so that + ;; Emacs doesn't create an extra pipe process for the first "sh" + ;; invocation. + (concat "sh -c 'while true; do echo y; sleep 1; done' |& " "sh -c 'read NAME; echo ${NAME}'") "y\n") (eshell-wait-for-subprocess t)