zsh-workers
 help / color / mirror / code / Atom feed
From: "Andrej Borsenkow" <borsenkow.msk@sni.de>
To: "Bart Schaefer" <schaefer@candle.brasslantern.com>,
	<zsh-workers@sunsite.auc.dk>
Subject: RE: pws-22: killing the ZSH loops problem
Date: Mon, 21 Jun 1999 20:14:52 +0400	[thread overview]
Message-ID: <000501bebc01$319cc760$21c9ca95@mow.siemens.ru> (raw)
In-Reply-To: <990621155542.ZM23581@candle.brasslantern.com>

> }
> } > } We need it only if MONITOR is set
> } >
> } > Not true!  MONITOR only affects handling of ^Z, not of ^C.  We need to be
> } > able to properly interrupt such loops in any shell.
> }
> } Ahem ... yes. What about "only in interactive shells?"
>
> What about "kill -INT"?  What about a shell script that isn't interactive
> but that's running in the foreground?
>

The shell script running in foreground will get INT from tty because it is in
TTY group and can do anything with it. The same, if I do kill -INT. The problem
only ever happens with loops started as part of shells with MIONITOR option set,
because it runs part of command (loop) in other process group as loop itself.
That prevents it from seeing this INT.

> } If don't miss something again: we have to fork only for the loop as whole.
>
> That's right, but the reason we don't do this now is so that parameter
> assignments inside the loop are visible after the loop terminates.  That
> doesn't work in most other shells.
>

As I understand, the last part of pipeline runs in current shell, and Sven's
suggestion was basically to run while ... done loop as <dummy command> | while
... loop. May be, I was wrong.

And another way is to run commands in the process group as shell and catch INT.
Is it even remotely possible?

> } ... so, it seems, execution time penalty is acceptable.  After all, you
> } don't use loops on every prompt.
>
> The execution time isn't as much at issue as is the process table space.
>

If it is needed (as I still believe) only for loops, started at PS1 when MONITOR
is set - it hardly happens too often. And having to kill your login shell to get
out of loop is not as nice


  reply	other threads:[~1999-06-21 16:16 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-06-18  8:55 Sven Wischnowsky
1999-06-18 15:33 ` Andrej Borsenkow
1999-06-18 16:44   ` Bart Schaefer
1999-06-21  7:08     ` Andrej Borsenkow
1999-06-21 15:55       ` Bart Schaefer
1999-06-21 16:14         ` Andrej Borsenkow [this message]
  -- strict thread matches above, loose matches on Subject: below --
1999-06-21 11:29 Sven Wischnowsky
1999-06-17  9:23 Sven Wischnowsky
1999-06-16  9:09 Andrej Borsenkow
1999-06-16  8:43 Andrej Borsenkow
1999-06-15 16:45 Andrej Borsenkow
1999-06-16 15:14 ` Peter Stephenson
1999-06-16 17:16   ` 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='000501bebc01$319cc760$21c9ca95@mow.siemens.ru' \
    --to=borsenkow.msk@sni.de \
    --cc=schaefer@candle.brasslantern.com \
    --cc=zsh-workers@sunsite.auc.dk \
    /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).