Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: fatal flaw zsh 4.0.1 on irix 6.3 & 6.5: suspend "ls -l|less" then resume hangs
- X-seq: zsh-workers 15547
- From: Sven Wischnowsky <wischnow@xxxxxxxxxxxxxxxxxxxxxxx>
- To: zsh-workers@xxxxxxxxxx
- Subject: Re: fatal flaw zsh 4.0.1 on irix 6.3 & 6.5: suspend "ls -l|less" then resume hangs
- Date: Tue, 31 Jul 2001 10:20:57 +0200 (MET DST)
- Cc: Timothy Miller <tsm@xxxxxxxxxxxx>
- In-reply-to: <yeh3d7egjdz.fsf@xxxxxxxxxxxxxxxxxx>
- Mailing-list: contact zsh-workers-help@xxxxxxxxxx; run by ezmlm
Timothy Miller wrote:
> ...
>
> Ah. He didn't send them to me (just the list, from examining the headers),
> so of course I didn't get or try them.
Sorry.
> exec.c patch:
>
> The line number given in this patch is 9 more than the corresponding line in
> the zsh-4.0.2 source file I have, just as a note.
>
> Incidentally, according to the irix man page for killpg, you're supposed to
> #define _BSD_SIGNALS or _BSD_COMPAT before signal.h to use it; zsh appears
> to use BSD_SIGNALS (not _BSD_SIGNALS) in configure. However, it still uses
> BSD_SIGNALS in -pws-2. Further, if I take the cc command line for exec.c,
> change cc to gcc, -c to -E, remove -o exec.o, and add -dD to get the macro
> definitions in place, then it looks like none of these *BSD* symbols are
> defined anywhere. The man page also says using BSD and SYSV facilities in
> the same program is strongly discouraged and will result in unpredictable
> behavior, in case you weren't aware (I don't know if zsh does that).
Aha. Hm, well, is there any Unix where killpg(p, s) does something
different than kill(-p, s)? If not, we could either change all places
where we use killpg() or just add a killpg macro to zsh.h or signals.h.
> ...
>
> So it looks like this patch fixes the hanging problem, except that cat still
> isn't stopped (it is when I do the same test under solaris with 4.0.1).
Yes, it's a lot better already. You could test if modifying the line I
changed to use kill() instead of killpg() to:
kill(-jobtab[list_pipe_job].gleader, 0) == -1) {
fixes the problem with cat not being stopped. (I've only inserted a `-'
before the `jobtab[...]' here.)
Bye
Sven
--
Sven Wischnowsky wischnow@xxxxxxxxxxxxxxxxxxxxxxx
Messages sorted by:
Reverse Date,
Date,
Thread,
Author