Steven, it does not seem to be a std::exception, either. I still get $ ./src/BoostThreads Thread 0x60b050 caught something else Thread 0x60b3e0 caught something else I attached the complete code again (just to be sure). I also checked linkage: $ ldd src/BoostThreads linux-vdso.so.1 => (0x00007fff757fe000) libboost_thread-gcc42-mt-1_36.so.1.36.0 => /home/rbock/Software/Binaries/boost/1.36.0/lib/libboost_thread-gcc42-mt-1_36.so.1.36.0 (0x00007f4d6d34b000) libboost_date_time-gcc42-mt-1_36.so.1.36.0 => /home/rbock/Software/Binaries/boost/1.36.0/lib/libboost_date_time-gcc42-mt-1_36.so.1.36.0 (0x00007f4d6d137000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f4d6ce2c000) libm.so.6 => /lib/libm.so.6 (0x00007f4d6cbab000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f4d6c99d000) libc.so.6 => /lib/libc.so.6 (0x00007f4d6c63b000) librt.so.1 => /lib/librt.so.1 (0x00007f4d6c432000) libpthread.so.0 => /lib/libpthread.so.0 (0x00007f4d6c216000) /lib64/ld-linux-x86-64.so.2 (0x00007f4d6d55d000) Looks fine to me... Regards, Roland Steven Watanabe wrote:
I can't reproduce this on cygwin. You might try to find out what exception /is/ being thrown.
catch(std::exception& e) { boost::mutex::scoped_lock lock(mutex_); cerr << "Thread " << boost::this_thread::get_id() << " caught std::exception" << e.what() << endl; }