Linux 上で安定して動作するようになった。ただし、GUI スレッド外で wxMessageBox()を使用するとクラッシュする。非 GUI スレッドは Linux ではウィンドウを開けないためだ。まだその修正には取り掛かっていない。ストレステストを実行しているが、正常に動作している。
wxWidgets の大部分は UI スレッド以外のスレッドで使用するとスレッドセーフではないが、経験則として Windows では UI 関連でないものは大丈夫だ。GTK ではさらにスレッドアンセーフであることが判明した。一度に多くのものを置き換えたので、一つのもの(おそらく Repaint)だけが原因だったのかは分からないが、wxString を使う wx 関数でさえも UI スレッド外では安全でないと想定する必要がある。これで wxWidgets の便利なポータビリティサポート関数がすべて使えなくなった。ソースを確認して全て数値処理である wxThread::GetCPUCount()のような単純なものは残したし、wxMutex は安全でなければ使い物にならないので安全なはずだ。
終了して直後に再度起動すると、ポート 8333 をバインドできないという問題がある。ポートは約 1分後に解放される。何か見落としがない限り、終了前にソケットを閉じているので、他に何ができるか分からない。おそらく Linux ではバインドしたポートの解放に 1分かかるということなのだろう。トロイの木馬が Web サーバーを殺して素早くその場所に入り込み、クライアントのリトライを全て拾うことを防ぐためのセキュリティ機能かもしれない。
アイコンの xpm バージョンを正しく作成する方法をまだ調べる必要がある。
データベースの dat ファイルが Windows と互換性があるかどうか気になる。