簡単な解決策として、wxWidgets のソースコードを見てどう実装しているか確認した。非 MSW 環境では wxMutex にマッピングしていて、TryEnter もあるので、ぴったりマッピングできた。
SVN に溜まっていた変更をすべてチェックインした。util.h の CCriticalSection の全面的な見直しと、util.cpp の OpenSSL の mutex コールバックも含めて、Windows 以外ではすべて wxWidgets で動作するようにした。
Linux で動作するようになったら、まずここでオフネットワークでテストスイートを実行して、その後 LibertyStandard に未リリースのビルドを渡して公開前にしばらくテストしてもらおう。
マルッティ・マルミの投稿CriticalSectionのコードをwxCriticalSectionに変換してSVNにアップロード するよ(少しトリッキーだけど)。TryEnterCriticalSectionをどうするかは まだわからない。もうすぐすべてチェックインできる状態になると思う。
Boostのmutexはここで役に立ちますか?
http://www.boost.org/doc/libs/1_40_0/doc/html/thread/synchronization.html#thread.synchronization.mutex_concepts