Я разрабатываю подключаемый модуль, который запускается в нескольких хост-приложениях и который поддерживает свои собственные потоки, используя библиотеку boost :: thread, версия 1.53.0.Плохой доступ при вызове pthread_getspecific в boost-потоке
При запуске моего подключаемого модуля в конкретном приложении на Mac я получаю ошибку с нулевым доступом при вызове boost::condition_variable::timed_wait()
. В верхней части стека вызовов есть вызов pthread_getspecific()
, который вызывается изнутри библиотеки потоков boost.
Если я заменяю timed_wait()
вызовом boost::this_thread_sleep()
, то такое же поведение: исключение вызывается, когда pthread_getspecific()
называется внутренним.
Это приложение является единственным, которое проявляет такое поведение; если я запускаю свой плагин на других хостах, он работает так, как ожидалось.
У меня нет большого опыта работы с pthreads, но я думаю, что исключение должно быть вызвано тем, что некоторые свойства настраиваются хост-приложением. Кто-нибудь лучше знает, что здесь может произойти?
Спасибо!
Я принял этот ответ: https://svn.boost.org/trac/boost/ticket/5752 – fionbio