あたまわるいミス
あたまわるいミスが最近多い。
- https://github.com/okuoku/mosh/commit/0d79e43561316b01de41f9d310667613874defe5
- stdoutを2回使って、stderrを放置している。
これで(mosh process)でも(nmosh process)が正常に動くようになった。
...が、そもそも、(nmosh process)のデザインそのものがあたまわるいミスを犯している。
(nmosh process)では、出力結果をバッファリングするように指定した場合、プロセスをwaitしたタイミングでデータをreadしてバッファに格納する。しかし、これではプロセスが永久に終わらなくなる。
パイプのバッファは無限大では無いため、ある程度読み取られずに放置されると、パイプへの書き込みはブロックすることになる。そのため、メモリにバッファリングするような場合でも、定期的にパイプからデータを読み出してやる必要がある。