tcsh hangs in sigsuspend

From: Michiel Boland <michiel_at_boland.org>
Date: Sat, 30 Jun 2007 16:41:42 +0200 (MEST)
Hi. I can no longer do simple things like

  kill `cat pidfile`

in tcsh.

After some debugging I noticed that tcsh hangs in sigsuspend in line 512 
of sh.proc.c. So I guess it (tcsh) executed 'cat pidfile', and now waits 
for the process to terminate. But unless I'm not looking properly, there 
appears to be a race condition here. Tcsh blocks the SIGCHLD signal 
*after* it forks the child, not before. So the child could wel have exited 
between the call to fork and the call to sigprocmask. In that case, would 
not the sigsuspend hang forever?

Also, I noticed that gdb gets very confused if I try to debug tcsh with 
a backticked command like the one above. (I guess this is the same as 
bin/112408)

Cheers
Michiel
Received on Sat Jun 30 2007 - 12:41:43 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:13 UTC