
Neal Coombes wrote:
I'm having a horrible time with a small example program :)
In the meantime, I thought I'd post a backtrace. I doubt it will help much, but maybe someone more familiar than I with the signal library will have a clue as to where I might look more carefully.
::operator()<boost::_mfi::mf0<void, MetaContractPres>, boost::_bi::list1<MetaContract*&> > (this=0x8587c28, f=@0x8587c20, a=@0x8046104) at /opt/app/boost_1_32_0/include/boost-1_32/boost/bind.hpp:228 228 unwrap(&f, 0)(a[a1_]); (gdb) p f $3 = (mf0<void,MetaContractPres> &) @0x8587c20: {f_ = {__pfn = invalid
In addition, looking through the stack: #2 0x08351f4d in boost::_bi::list1<boost::_bi::value<MetaContractPres*> pointer to member function The destructor for MetaContractPres is called, the destructor for it's base class trackable is called. I can't tell why the signal is not disconnecting (otherwise you'd have the example program by now :) Everything works fine if I disconnect from all signals manually. Is it possible that some of the trackable's connections aren't controlling?? In case it helps: uname -a SunOS dusty 5.9 Generic_112234-08 i86pc i386 i86pc (ie. solaris 2.9 intel) gcc --version gcc (GCC) 3.3.2 ld -V ld: Software Generation Utilities - Solaris Link Editors: 5.9-1.381