diff options
Diffstat (limited to 'src/corelib/thread/qfutureinterface.cpp')
| -rw-r--r-- | src/corelib/thread/qfutureinterface.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/corelib/thread/qfutureinterface.cpp b/src/corelib/thread/qfutureinterface.cpp index 9d00bc32717..92b2df7c15f 100644 --- a/src/corelib/thread/qfutureinterface.cpp +++ b/src/corelib/thread/qfutureinterface.cpp @@ -283,6 +283,15 @@ void QFutureInterfaceBase::reportCanceled() #ifndef QT_NO_EXCEPTIONS void QFutureInterfaceBase::reportException(const QException &exception) { + try { + exception.raise(); + } catch (...) { + reportException(std::current_exception()); + } +} + +void QFutureInterfaceBase::reportException(std::exception_ptr exception) +{ QMutexLocker locker(&d->m_mutex); if (d->state.loadRelaxed() & (Canceled|Finished)) return; |
