
"Chris Newbold" <Chris.Newbold@mathworks.com> wrote in message news:6F6A2FC198A0F943ACC2259C38A2E30B6688EDD1A8@EXCHANGE-AH.ad.mathworks.com... [...]
Greetings; I've just assumed maintainership for Boost.Pool, so please bear with me as I work through the code.
I can't see any obvious reason why this would be failing. Defining static data members (i.e. owned_base::pool) in a header file always makes me a little nervous, though. I've seen too many cases where compilers foul up the ODR under such conditions; GCC 3.4.6 is a bit old...
Could you provide a stack trace of the crash? That would make it easier to get some traction on what might be going wrong here. Thanks.
I get the following backtrace, but I haven't investiguated thta much yet. It looks to be an STL problem but I'll check this out tomorrow: #0 0x0804fc7a in std::_List_base<std::pair<char*, char*>, boost::fast_pool_allocator<std::pair<char*, char*>, boost::default_user_allocator_new_delete, boost::details::pool::pthread_mutex, 32u> >::_M_clear ( this=0x8dc2008) at /usr/include/c++/4.3/bits/list.tcc:77 #1 0x0804fcdb in ~_List_base (this=0x8dc2008) at /usr/include/c++/4.3/bits/stl_list.h:358 #2 0x0804fcef in ~list (this=0x8dc2008) at /usr/include/c++/4.3/bits/stl_list.h:417 #3 0x0804fd4f in ~auto_ptr (this=0x80685b8) at /usr/include/c++/4.3/backward/auto_ptr.h:173 #4 0x0804fe80 in ~pool (this=0x80685a0) at ../../../boost/detail/sh_owned_base_nt.hpp:71 #5 0x006bc527 in exit () from /lib/tls/libc.so.6 #6 0x006a6ded in __libc_start_main () from /lib/tls/libc.so.6 #7 0x08048df1 in _start () -Phil