]> git.eshelyaron.com Git - emacs.git/commitdiff
; Fix a race condition in an Eshell test
authorJim Porter <jporterbugs@gmail.com>
Wed, 7 Sep 2022 20:58:31 +0000 (13:58 -0700)
committerJim Porter <jporterbugs@gmail.com>
Thu, 8 Sep 2022 22:13:17 +0000 (15:13 -0700)
* 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.

test/lisp/eshell/esh-proc-tests.el

index 52a0d1eeeb864bc1c137644dc59c8c8e3fd7d2a7..abe363bee0d0e861ddabb377cafeba1d1ce5c729 100644 (file)
    (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)