(mosh concurrent) のスレッドセーフ性

id:mjt さんに指摘いただいていた (mosh concurrent) にスレッドセーフじゃないところがあり落ちる件を調査。
結果としてスレッドセーフじゃなかったのは

  • Symbol::intern : シンボルのインターン処理。
  • 外部ファイルの書き込み。具体的には prefix.txt 。これは main-vm? を満たすスレッドだけが書き込むようにした。


調査方法は

  • デバッガでバックトレースを見て推測
  • grep で static を全て見ていく(意外と効果的)


(mosh ext) の httpd で 200 スレッドまで落ちない事を確認。