tcsh hangs in sigsuspend
Michiel Boland
michiel at boland.org
Sat Jun 30 14:41:43 UTC 2007
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
More information about the freebsd-current
mailing list