diff options
author | Mikhail Svetkin <[email protected]> | 2020-06-29 19:40:00 +0200 |
---|---|---|
committer | Mikhail Svetkin <[email protected]> | 2020-07-02 20:08:23 +0200 |
commit | 983e93c3b160c62e60b1755d075e959d4685d949 (patch) | |
tree | 161b81aa13610a1b57c8e156e4c9d512abe67b28 /src/httpserver/qhttpserverfutureresponse.cpp | |
parent | e49b9a111aeb50ccb3c6fc6c9c5f0bcc1781b03d (diff) |
The error:
QtPrivate::ExceptionStore::throwPossibleException already defined
in QHttpServerFutureResponse.
Task-number: QTBUG-85191
Change-Id: I055b2aa563cbde7d01309a01fa59d4283c9c2e36
Reviewed-by: MÃ¥rten Nordheim <[email protected]>
Diffstat (limited to 'src/httpserver/qhttpserverfutureresponse.cpp')
-rw-r--r-- | src/httpserver/qhttpserverfutureresponse.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/httpserver/qhttpserverfutureresponse.cpp b/src/httpserver/qhttpserverfutureresponse.cpp index 3d2784b..2409e6a 100644 --- a/src/httpserver/qhttpserverfutureresponse.cpp +++ b/src/httpserver/qhttpserverfutureresponse.cpp @@ -61,6 +61,33 @@ QT_BEGIN_NAMESPACE \endcode */ +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) + +QHttpServerResponse QFutureInterface<QHttpServerResponse>::takeResult() +{ + if (isCanceled()) { + exceptionStore().throwPossibleException(); + return QHttpServerResponse::StatusCode::NotFound; + } + // Note: we wait for all, this is intentional, + // not to mess with other unready results. + waitForResult(-1); + +#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0) + std::lock_guard<QMutex> locker{*mutex()}; +#else + std::lock_guard<QMutex> locker{mutex(0)}; +#endif + QtPrivate::ResultIteratorBase position = resultStoreBase().resultAt(0); + auto ret = std::move_if_noexcept( + *const_cast<QHttpServerResponse *>(position.pointer<QHttpServerResponse>())); + resultStoreBase().template clear<QHttpServerResponse>(); + + return ret; +} + +#endif // QT_VERSION < QT_VERSION_CHECK(6, 0, 0) + struct QResponseWatcher : public QFutureWatcher<QHttpServerResponse> { Q_OBJECT |