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