在我的应用程序中使用Boost.Spirit和Boost.Thread 库时,我遇到了崩溃。只有在主线程的进程生命周期中使用Spirit 解析器才会发生这种情况。当在DLL中使用Boost Spirit崩溃时
崩溃发生在退出时,似乎与清理由Spirit解析器分配的 线程专用存储有关。 由于线程特定的内存被分配在已被卸载的DLL 中,因此它可能会崩溃,这是由于卸载了哪些DLL的序列为 。然而,Boost.Thread DLL不会被卸载,直到应用程序本身退出。
有没有一种方法可以让我强迫Spirit清理其特定线程 的存储空间,例如:在我的DLL - 主,当我得到一个进程分离通知?
任何解决方案/提示将不胜感激。
PS! 我的平台和设置:
- 的Visual Studio 2005
- BOOST_ALL_DYN_LINK
- BOOST_SPIRIT_THREADSAFE
您是否发现过有关该问题的任何错误报告? – EFraim 2010-01-21 18:01:42