Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Signal handling bugaboo in command substitution
- X-seq: zsh-workers 38112
- From: Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx>
- To: zsh-workers@xxxxxxx
- Subject: Signal handling bugaboo in command substitution
- Date: Mon, 7 Mar 2016 18:44:06 -0800
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern-com.20150623.gappssmtp.com; s=20150623; h=from:message-id:date:to:subject:mime-version; bh=y7LH5aNtBSgXxqnxGPqif2wfIIG20E4Q9Rud7kUGen8=; b=GOEgAwq2iytl3wSUTyOFqZUPXahzs16nayilnapYPdlLJRiTV3amMPBZ3ArWiruHG1 EtrZ6x99F7Afpz+xZWtw6kx+lEAq/EHuHhCqVtorut9vpKzs7WMOl0+DVRGIRPzrMJ/T OdjvUGwwozHbw2zYDEfVQIbl8pZ6+nyNQbhS08vmLQdcHig4uS6LV/aBVpy1NJ1JJdnb h///6+j3cX1x7RaQoxyAuTO2AqoqR60UgtTlPP6lGD7NBL5upXbGRe4OuSN6Tll2X2uX zkEJeFBJ0nEDiSOs6BhOzgRgxbjIut+hsV2M2U34aIo5zZAsWS57mBjEOIMbY7xdl46R HgRA==
- List-help: <mailto:zsh-workers-help@zsh.org>
- List-id: Zsh Workers List <zsh-workers.zsh.org>
- List-post: <mailto:zsh-workers@zsh.org>
- Mailing-list: contact zsh-workers-help@xxxxxxx; run by ezmlm
At a PS1 prompt:
torch% print $(sleep 3; echo foo)
Press ctrl+z during the sleep. Zsh is now hung, because the command
substitution is occuring in prefork() so there's nothing to handle the
stopped children and the parent itself ignores the signal. Zsh is hung;
it won't return to a prompt, the command substitution will never produce
the awaited output, and nothing (except "kill -CONT" from another shell)
will wake it back up.
I'm not sure what to do here. In other circumstances it's OK to stop a
command substitution with a ctrl+z, and in any kind of non-interactive
shell or even in a subshell the parent would handle the signal.
Bash appears to leave TSTP blocked here when interactive. I don't think
testing for interactivity is sufficient in zsh context, though.
Messages sorted by:
Reverse Date,
Date,
Thread,
Author