Boost logo

Boost Users :

Subject: [Boost-users] 1.36 Threads/ASIO causing SEGV when cleaning up thread specific storage
From: spiderlama (spiderlama_at_[hidden])
Date: 2008-09-11 01:46:49


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.

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net