1
我正在开发一个插件,该插件在几个主机应用程序中运行,并使用boost :: thread库(版本1.53.0)维护其自己的线程。在升级线程中调用pthread_getspecific时访问错误
当在Mac上的特定应用程序中运行插件时,调用boost::condition_variable::timed_wait()
时出现空访问错误。在调用堆栈的顶部是一个调用pthread_getspecific()
,它是从boost线程库中调用的。
如果我用boost::this_thread_sleep()
的调用替换timed_wait()
,则会在内部调用pthread_getspecific()
时引发相同的行为:引发异常。
此应用程序是唯一展现此类行为的应用程序;如果我在其他主机上运行插件,则按预期工作。
我对pthreads没有多少经验,但我认为这个异常必须是由主机应用程序设置的一些属性引起的。有没有人对这里可能发生的事情有更好的了解?
谢谢!
我已将此答案表示为:https://svn.boost.org/trac/boost/ticket/5752 – fionbio