我正在开发一个在多个主机应用程序中运行的插件,它使用 boost::thread 库版本 1.53.0 维护自己的线程。
在 Mac 上的特定应用程序中运行我的插件时,调用boost::condition_variable::timed_wait()
. 在调用堆栈的顶部是对 的调用pthread_getspecific()
,它是从 boost 线程库内部调用的。
如果我用timed_wait()
对 的调用替换,则相同的行为:在内部调用boost::this_thread_sleep()
时抛出异常。pthread_getspecific()
此应用程序是唯一表现出这种行为的应用程序;如果我在其他主机上运行我的插件,它会按预期工作。
我对 pthreads 没有太多经验,但我认为异常一定是由宿主应用程序设置的某些属性引起的。有没有人对这里可能发生的事情有更好的了解?
谢谢!