-mthreadsを使うべきか否か

追記 : -mthreadsしても他のところで落ちる(exitのテストでjoinしたときに&(-1L)でなくNULLが返る)。。とりあえず、しばらくは-mthreadsすることにする。

結局のところ、問題はgtestがC++例外を使っていたことにあった。現在のmoshMinGWコードではMinGWを-mthreadsなしで使っているので、例外を使うと間違ったことが起る。
今までもgtestを使っていたが、マルチスレッド環境では使っていなかったので問題が表面化しなかった。
mthreadsを使わない意義は、単に追加のDLL(mingwm10.dll)を必要としたくないからで、通常のシチュエーションならむしろ使うべき。ただ、ユーザにとってはファイルは少いに越したことは無い(個人的にはmosh.exeひとつで全て完結すべき*1だと考えている)のでmoshやskymoshでは使ってこなかった。
もちろん多少の不正なテクニックを用いることでこれは回避できるが、好ましくない。
現在のところ、mosh本体ではC++例外を使っていないので、実行そのものには大きな問題は無いように思える。

*1:moshを含んだアプリケーションを配布したとき、ユーザにどのファイルをダブルクリックすればいいのか迷わせないため