複数のホスト アプリケーションで実行され、boost::thread ライブラリ バージョン 1.53.0 を使用して独自のスレッドを維持するプラグインを開発しています。
Mac 上の特定のアプリケーションでプラグインを実行すると、 を呼び出すときに null アクセス エラーが発生しますboost::condition_variable::timed_wait()
。呼び出しスタックの一番上にあるのはpthread_getspecific()
、ブースト スレッド ライブラリ内から呼び出される への呼び出しです。
timed_wait()
の呼び出しに置き換えると、同じ動作になります。内部で呼び出されるとboost::this_thread_sleep()
例外がスローされます。pthread_getspecific()
このアプリケーションは、この種の動作を示す唯一のアプリケーションです。プラグインを他のホストで実行すると、期待どおりに動作します。
pthread の経験はあまりありませんが、ホスト アプリケーションによって設定されたいくつかのプロパティが原因で例外が発生するに違いないと思います。ここで何が起こっているのかについて、より良い考えを持っている人はいますか?
ありがとう!