плохой доступ при вызове pthread_getspecific в ветке Boost

Я разрабатываю плагин, который работает в нескольких хост-приложениях и поддерживает свои собственные потоки, используя библиотеку boost :: thread, версия 1.53.0.

При запуске моего плагина в определенном приложении на Mac я получаю ошибку нулевого доступа при вызове boost::condition_variable::timed_wait(), На вершине стека вызовов находится вызов pthread_getspecific(), который вызывается из библиотеки потоков поддержки.

Если я заменю timed_wait() с призывом к boost::this_thread_sleep()то же поведение: исключение выдается, когда pthread_getspecific() называется внутренне.

Это приложение является единственным, которое демонстрирует такое поведение; если я запускаю плагин на других хостах, он работает как положено.

У меня нет большого опыта работы с pthreads, но я думаю, что исключение должно быть вызвано некоторыми свойствами, устанавливаемыми хост-приложением. У кого-нибудь есть идеи о том, что здесь происходит?

Спасибо!

1

Решение

Оказывается, что в моем приложении API-интерфейс pthread вызывает потокобезопасность, вызывая сбой нулевого указателя, когда я вызываю их в отдельном потоке.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]