diff options
-rw-r--r-- | src/corelib/thread/qthread_symbian.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/corelib/thread/qthread_symbian.cpp b/src/corelib/thread/qthread_symbian.cpp index c515ae6..46339a6 100644 --- a/src/corelib/thread/qthread_symbian.cpp +++ b/src/corelib/thread/qthread_symbian.cpp @@ -335,7 +335,15 @@ void *QThreadPrivate::start(void *arg) createEventDispatcher(data); emit thr->started(); - thr->run(); + TRAPD(err, { + try { + thr->run(); + } catch (const std::exception& ex) { + qWarning("QThreadPrivate::start: Thread exited on exception %s", ex.what()); + } + }); + if (err) + qWarning("QThreadPrivate::start: Thread exited on leave %d", err); QThreadPrivate::finish(arg); |