
11 Sep
2008
11 Sep
'08
5:46 a.m.
I am trying to run my unit previous unit tests with the new 1.36 release, but SEGV is being thrown upon exit. No faults are thrown using 1.34.1, and no code is changed between versions. But for some reason, it keeps throwing! The TSS callback functions are empty as below, as no TSS variables own their data. static void TssCleanup(AType* tss) { } Call stack: msvcr80d.dll!_free_base(void * pBlock=0x00fa8bd8) Line 109 + 0x13 bytes C ntdll.dll!7c901046() test.exe!boost::detail::lightweight_mutex::scoped_lock::scoped_lock(boost::detail::lightweight_mutex & m={...}) Line 94 + 0xe bytes C++ test.exe!boost::detail::allocator_impl<20,4>::dealloc(void * pv=0x002d19e0) Line 149 C++ test.exe!boost::detail::sp_counted_impl_pd<boost::thread_specific_ptr<AClass>::run_custom_cleanup_function *,boost::detail::do_heap_delete<boost::thread_specific_ptr<AClass>::run_custom_cleanup_function> >::operator delete(void * p=0x002d19e0) Line 175 + 0x9 bytes C++ test.exe!boost::detail::sp_counted_impl_pd<boost::thread_specific_ptr<AClass>::run_custom_cleanup_function *,boost::detail::do_heap_delete<boost::thread_specific_ptr<AClass>::run_custom_cleanup_function> >::`scalar deleting destructor'() + 0x27 bytes C++ test.exe!boost::detail::sp_counted_base::destroy() Line 66 + 0x22 bytes C++ test.exe!boost::detail::sp_counted_base::weak_release() Line 116 + 0xf bytes C++ test.exe!boost::detail::sp_counted_base::release() Line 105 C++ test.exe!boost::detail::shared_count::~shared_count() Line 220 C++ test.exe!boost::shared_ptr<boost::detail::tss_cleanup_function>::~shared_ptr<boost::detail::tss_cleanup_function>() + 0x19 bytes C++ test.exe!boost::detail::tss_data_node::~tss_data_node() + 0x12 bytes C++ test.exe!boost::detail::tss_data_node::`scalar deleting destructor'() + 0xf bytes C++ test.exe!boost::detail::heap_delete<boost::detail::tss_data_node>(boost::detail::tss_data_node * data=0x00057498) Line 380 C++ test.exe!boost::`anonymous namespace'::run_thread_exit_callbacks() Line 140 + 0x9 bytes C++ test.exe!on_thread_exit() Line 580 C++ msvcr80d.dll!doexit(int code=0, int quick=0, int retcaller=0) Line 553 C msvcr80d.dll!exit(int code=0) Line 398 + 0xd bytes C test.exe!__tmainCRTStartup() Line 610 C test.exe!mainCRTStartup() Line 414 C I have searched for this problem long and hard, if I have missed something please let me know. I currently cannot reproduce the error with simplified code. Cheers, spider. -- View this message in context: http://www.nabble.com/1.36-Threads-ASIO-causing-SEGV-when-cleaning-up-thread-specific-storage-tp19428245p19428245.html Sent from the Boost - Users mailing list archive at Nabble.com.