lxの下で、wxCriticalSectionが再帰的ではないことを発見しました(スレッドが複数回セクションをつかむとデッドロックします)。ソースを見ると、wxCriticalSectionは、wxMUTEX_RECURSIVEを使わずに、LinuxではwxMutexを使って実装されていることがわかりました。私はWinとMacの下でうまく動作するコードベースを持っており、Linuxに移植したいのですが、再帰を避けていない場所ではデッドロックが発生します。Linux/UnixのwxCriticalSection
今、私は二つの可能性があります。
私の目的のためのwxWidgetsを変更し、再構築(brrr - 万が一、私は以来、私はその背後にある設計上の決定についてはあまり知らないことをavpidたい)
を- 私の可能なコードパスのそれぞれとすべてのデバッグ
、
第三の方法があります(brrr - 起こしやすい - 日かかりますとは恐ろしくバグです) wxCriticalSectionをMac/Win/Unixでも同じように動作する構造体で置き換える/拡張するか?
ps。誰かが私にデザインの決定を説明できますか?氏ヴァディムZは
は私が一時的に(再帰的wxCriticalSectionsを作る)私はこれに反対した理由を忘れていましたが、私は(もちろん、私のメッセージを送った後)30秒後にそれを思い出しました...と言います。バージョン2.9.1では
しかし、フォローアップがなかった...
はい、申し訳ありませんが、バージョンについては言及していませんでした。私はwx 2.8.11、 "現在の安定したリリース"で働いています。 とにかく、これは私の解決策だと思います - 2.9が安定するのを待っています –