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 11:08:50 +0400	[thread overview]
Message-ID: <000201bebbb4$e9f3a9c0$21c9ca95@mow.siemens.ru> (raw)
In-Reply-To: <990618164443.ZM8127@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?"

> However, we only need it when (a) there's at least one external command
> (you can already interrupt purely builtin loops, try it) and (b) that
> external command doesn't return the proper exit status for zsh to learn
> that it caught a signal.  We can't know (b) in advance, so I can't come
> up with anything useful for (a) except to fork twice on every external
> command, which is horribly wasteful.
>

If don't miss something again: we have to fork only for the loop as whole. In
other words, only if the command being executed (top-level command) is a complex
command. This means, that in following

while xxx
  while yyy
  done
done

we only fork once for the outer loop and only, if it was input to PS1. It means,
we don't need to fork for the loops in functions (because theay are *not* zsh
commands), so, it seems, execution time penalty is acceptable. After all, you
don't use loops on every prompt.

> } And it just occured to me - is it possible to kill/stop/resume shell
> } function?
>
> Yes.  In fact, that was the recommended workaround for several pipe-into-
> a-loop problems before they gradually got fixed:

Well, thanks for reminder. Still, I'd really prefer properly running loops :-)

/andrej


  reply	other threads:[~1999-06-21  7:10 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 [this message]
1999-06-21 15:55       ` Bart Schaefer
1999-06-21 16:14         ` Andrej Borsenkow
  -- 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='000201bebbb4$e9f3a9c0$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).