Philip Guenther <guenther <at> gmail.com> writes:
> Oh, you're running 5.4-stable? I thought you were running -current
> and was worried there was another hang in there. I'm now 99% sure
> you're hitting the one I fixed back in October.
I did some more experimenting, and I found that the issue does not happen
when I leave out the "crtscts" option to stty.
With "crtscts" however, things get weird:
Opening and immediately closing cua01 is no problem:
open cua01
stty 9600 sane parenb -parodd crtscts cs7 igncr
close cua01 # device probably didn't send anything yet
exit # exits normally
Opening cua01 and closing it later *is* a problem:
open cua01
stty 9600 sane parenb -parodd crtscts cs7 igncr
sleep 15 # to make sure the device on the other end has sent some data
close cua01 # HANGS, but is interruptible after which everything is nicely
cleaned up
exit # never reached
Interrupting a read from cua01 results in a process that can't exit:
open cua01
stty 9600 sane parenb -parodd crtscts cs7 igncr
while-loop {
read cua01 # blocks when the other end isn't sending anything; if the
process is interrupted now it won't ever exit;
cua01 is not released and only a reboot clears the process
}
close cua01 # HANGS, but is interruptible after which everything is nicely
cleaned up
exit # never reached
Again, if I leave out "crtscts" (and leave everything else the same),
everything works as expected: no hangs at all, and interrupting a read is no
problem.
I'm sorry, but I don't know which hang you fixed in October. With this
information, do you think it's the same hang?
Thanks,
Jurjen Oskam