From: Stephane Chazelas <stephane.chazelas@gmail.com>
To: Bart Schaefer <schaefer@brasslantern.com>
Cc: Zsh hackers list <zsh-workers@zsh.org>
Subject: Re: "echo | ps -j $(:) | cat | cat | cat" runs components in different process groups
Date: Sun, 25 Mar 2018 08:48:27 +0100 [thread overview]
Message-ID: <20180325074827.GB7561@chaz.gmail.com> (raw)
In-Reply-To: <180324152357.ZM32580@torch.brasslantern.com>
2018-03-24 15:23:57 -0700, Bart Schaefer:
[...]
> Zsh would have to block "echo" from *starting*
> until the rest of the pipeline was built.
Note that it looks as if that's what ksh93 is doing, because
looking at strace -f, and even if I add a hundred |cat, echo's
write() is only done after all the processes have been started.
As I said earlier, while looking at strace output, I don't
understand how that works. Unless I'm missing something, it's as
if it was not done with syscalls. But then what could it be?
Busy loop on shared memory? One would have to look at the code I
suppose.
Note that with ksh93, like in other shells, one can't delay the
creation of the other processes with command substitutions as
they are not done in the main process.
I suppose pipes could be used. Is it not what zsh already does
in other contexts?
--
Stephane
next prev parent reply other threads:[~2018-03-25 7:48 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-23 16:16 Stephane Chazelas
2018-03-23 23:36 ` Bart Schaefer
2018-03-24 5:19 ` Bart Schaefer
2018-03-24 8:05 ` Joey Pabalinas
2018-03-24 17:34 ` Stephane Chazelas
2018-03-24 22:23 ` Bart Schaefer
2018-03-25 7:00 ` Stephane Chazelas
2018-03-25 8:26 ` Stephane Chazelas
2018-03-25 7:48 ` Stephane Chazelas [this message]
2018-03-25 18:09 ` Stephane Chazelas
2018-03-27 10:17 ` Stephane Chazelas
2018-03-24 22:09 ` Bart Schaefer
2018-04-10 11:45 ` Peter Stephenson
2018-04-10 13:59 ` Peter Stephenson
2018-04-11 22:10 ` Bart Schaefer
2018-04-12 16:23 ` Peter Stephenson
2018-04-15 16:23 ` Stephane Chazelas
2018-04-15 17:38 ` Bart Schaefer
2018-04-15 18:58 ` Stephane Chazelas
2018-04-17 5:39 ` Bart Schaefer
2018-04-17 9:19 ` Peter Stephenson
2018-04-17 16:09 ` Bart Schaefer
2018-04-17 16:27 ` Bart Schaefer
2018-04-17 16:35 ` Peter Stephenson
2018-04-17 17:52 ` Bart Schaefer
2018-04-19 9:40 ` Peter Stephenson
2018-04-20 9:28 ` Forking earlier for background code Peter Stephenson
2018-04-20 10:01 ` Peter Stephenson
2018-04-20 12:54 ` Vin Shelton
[not found] ` <CGME20180420132008eucas1p1c297624e870975cd892c74254970faab@eucas1p1.samsung.com>
2018-04-20 13:20 ` Peter Stephenson
2018-04-20 16:01 ` Vin Shelton
2018-04-23 8:29 ` Peter Stephenson
2018-05-01 9:23 ` Peter Stephenson
[not found] ` <F3A62E38-24E2-4A62-8E19-F54C9B81E9E5@kba.biglobe.ne.jp>
2018-04-23 13:52 ` "echo | ps -j $(:) | cat | cat | cat" runs components in different process groups Peter Stephenson
2018-04-23 14:03 ` Peter Stephenson
[not found] ` <CGME20180423140859eucas1p2591bf1422614209979d4890383268c37@eucas1p2.samsung.com>
2018-04-23 14:08 ` Peter Stephenson
2018-04-23 15:29 ` Jun T.
2018-04-18 6:29 ` Stephane Chazelas
2018-04-18 16:33 ` Bart Schaefer
2018-04-10 9:53 ` Peter Stephenson
2018-03-25 7:38 ` Stephane Chazelas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180325074827.GB7561@chaz.gmail.com \
--to=stephane.chazelas@gmail.com \
--cc=schaefer@brasslantern.com \
--cc=zsh-workers@zsh.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
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 NNTP newsgroup(s).