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



Bart Schaefer wrote:

> On Jul 10,  5:26pm, Timothy Miller wrote:
> > 
> > Ok: zsh-3_1_6-pws-2 works; zsh-3_1_6-pws-3 fails.
> 
> One of these must be the culprit, then:
> 
> 	* Sven: 7605: Src/exec.c, Src/jobs.c: use killpg instead of
> 	  altering process group when leader exits, fix fg test to use
> 	  killpg.
> 
> 	* Sven: 7573: Src/signals.c, Src/exec.c, Src/utils.c: fix return
> 	  value of killjb(); pipelines which lose their leader get a new
> 	  one.
> 
> Can you send us some output of `ps' that shows the process groups of the
> processes involved, from both -pws-2 and anything after that?

You may also try the patch below (each hunk separately or both together).

If this turns out to be the problem, then Irix seems to behave
differently from other Unices w.r.t. calling kill() on a process group
with `signal' 0.  Urgh.


Bye
  Sven

--- Src/exec.c.old	Wed Jul 11 10:27:51 2001
+++ Src/exec.c	Wed Jul 11 10:28:19 2001
@@ -2512,7 +2512,7 @@
     } else if (thisjob != -1 && cl) {
 	if (jobtab[list_pipe_job].gleader && (list_pipe || list_pipe_child)) {
 	    if (setpgrp(0L, jobtab[list_pipe_job].gleader) == -1 ||
-		killpg(jobtab[list_pipe_job].gleader, 0) == -1) {
+		kill(jobtab[list_pipe_job].gleader, 0) == -1) {
 		jobtab[list_pipe_job].gleader =
 		    jobtab[thisjob].gleader = (list_pipe_child ? mypgrp : getpid());
 		setpgrp(0L, jobtab[list_pipe_job].gleader);
--- Src/utils.c.old	Wed Jul 11 10:33:09 2001
+++ Src/utils.c	Wed Jul 11 10:33:16 2001
@@ -2404,7 +2404,7 @@
 # endif
 #endif
 	{
-	    if (pgrp != mypgrp && kill(-pgrp, 0) == -1)
+	    if (pgrp != mypgrp && kill(pgrp, 0) == -1)
 		attachtty(mypgrp);
 	    else {
 		if (errno != ENOTTY)

-- 
Sven Wischnowsky                         wischnow@xxxxxxxxxxxxxxxxxxxxxxx



Messages sorted by: Reverse Date, Date, Thread, Author