続き

Python の print が、制御端末のフロー制御でブロックした際、SIGALRM のシグナルでも抜けてこない問題を調べてみました。
結論は、Python のせいでも NetBSD のせいでもありませんでした。(^^;)
print でブロックしていても、SIGALRM で例外処理ルーチンには飛んでました。問題は、その後の処理で再度 print をしてしまい、そっちでブロックしてしまうということでした。(情けない)
この問題は、仮にプロセスを foo > /dev/tty & とかしてもダメで、/dev/tty の出力がブロックすれば、やはり固まります。一番簡単なのは、foo > log.txt 2>&1 のように、ログは別のファイルに出力するようにして、別プロセスで tail -f log.txt することでしょうか。
ちょっと勉強になりました。