2011/11/15 Tobias Ringström: > > That's more like it. Is the std::thread behaviour a bug, or am I missing > something? Though the C++11 standard seems to allow the stack to be unwound > before std::terminate is called, it exceptionally unhelpful. I've search but > not been able to find any explanation. No, it's not a bug, but it could be improved. What happens in std::thread is that we catch the exception (at which point the stack has been unwound) then call std::terminate explicitly. That was done to ensure we onform to the standard and terminate as required. Now that the compiler support noexcept we should use that instead and not catch the exception, causing the runtime to call terminate without unwinding the stack. I'll make that change for 4.7.0