zsh-workers
 help / color / mirror / code / Atom feed
From: Frank Terbeck <ft@bewatermyfriend.org>
To: zsh-workers@zsh.org
Subject: Re: $pipestatus broken?
Date: Fri, 23 Dec 2011 23:11:29 +0100	[thread overview]
Message-ID: <87hb0rueem.fsf@ft.bewatermyfriend.org> (raw)
In-Reply-To: <111223133128.ZM17298@torch.brasslantern.com> (Bart Schaefer's message of "Fri, 23 Dec 2011 13:31:28 -0800")

Bart Schaefer wrote:
> On Dec 23, 11:49am, Frank Terbeck wrote:
> } Bart Schaefer wrote:
> } > With that loop, I get a single "1" 100% of the time unless I attach to
> } > the process with GDB, in which case it becomes random.
> } 
> } It's correct that this should output "0 0", though, right?
>
> Yes, I believe so.
>
> I *think* the problem is that the right-hand-side is a builtin and thus
> does not have an external process.  It's therefore possible for the
> left side to exit and be reaped before the right side is done, so the
> shell forgets that it is in a pipeline at all.

I think that's part of it. It appears to have to be a loop on the
right-hand-side, too, though. The following never fails for me:

% (repeat 100000; do : | :; print "${pipestatus[@]}"; done) | sort -u
0 0

...unless, of course, the loop just needs to be there to delay the RHS,
for the exit/reap to happen as you suggested.

Regards, Frank


  reply	other threads:[~2011-12-23 22:17 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-10 12:24 Frank Terbeck
2011-12-10 12:48 ` Frank Terbeck
2011-12-10 14:58   ` Bart Schaefer
2011-12-11 14:37     ` Frank Terbeck
2011-12-23 10:49     ` Frank Terbeck
2011-12-23 21:31       ` Bart Schaefer
2011-12-23 22:11         ` Frank Terbeck [this message]
2011-12-24  9:32           ` Bart Schaefer
2011-12-24  9:59             ` Frank Terbeck
2011-12-24 18:23               ` Bart Schaefer
2011-12-24 18:46                 ` Bart Schaefer
2011-12-24 17:37       ` Bart Schaefer

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=87hb0rueem.fsf@ft.bewatermyfriend.org \
    --to=ft@bewatermyfriend.org \
    --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).