久しぶりにダイアリー書いたんでついでにこれも。
boost/libs/thread/src/thread.cpp より。
unsigned __stdcall thread_proxy(void* param) { try { thread_param* p = static_cast(param); boost::function0 threadfunc = p->m_threadfunc; p->started(); threadfunc(); on_thread_exit(); } catch (...) { on_thread_exit(); } return 0; }
この仕様はどうかなぁと。
スレッド内部で拿捕していない例外が発生したら無言でスレッド終了?
ちょっとそれはあんまりだと思う...
DebugBreak が利かないから調べたらこれが原因だった...
ここは
unsigned __stdcall thread_proxy(void* param) { boost::function0threadfunc; try { thread_param* p = static_cast (param); threadfunc = p->m_threadfunc; p->started(); } catch (...) { on_thread_exit(); } threadfunc(); on_thread_exit(); return 0; }
こう書くべきだと思うんだけど誰もつっこまない、ってことは
私の方がおかしいのかなぁ?