Under the GNU system, thread cancellation takes the form of an
exception thrown from the cancellation point, so that the stack
unwinds and destructors are called. The thread entrypoints thus have
what is effectively a catch (...) that terminates on everything but
the thread cancellation exception.
Unfortunately this means the stack has been unwound and we have no
backtrace with which to debug.
Wrapping the actual entry point in noexcept means we call terminate
and get our backtrace as soon as the exception is thrown, assuming it
doesn't get caught by something in the middle.
Signed-off-by: Adam C. Emerson <aemerson@redhat.com>