diff options
author | Andre Hartmann <aha_1980@gmx.de> | 2019-07-30 22:40:35 +0200 |
---|---|---|
committer | Andre Hartmann <aha_1980@gmx.de> | 2019-08-01 16:09:27 +0200 |
commit | 1bac9b37a9982eb5bf44f0fb16f580c2c1c1d959 (patch) | |
tree | 50ff29185f54053627fa532a3efc06b385ce2f76 /src | |
parent | fd9b9c73ca60c66d01376ddbd6d36e9ea2dfa95c (diff) |
QCanBusDevice: Enter QScopedValueRollback later
... in waitForFramesReceived() and
waitForFramesWritten().
Change-Id: Iadfe569de989f6bdc3aa6fae81a12b6a3ac2ee9c
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/serialbus/qcanbusdevice.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/serialbus/qcanbusdevice.cpp b/src/serialbus/qcanbusdevice.cpp index cb9dd69..e3964da 100644 --- a/src/serialbus/qcanbusdevice.cpp +++ b/src/serialbus/qcanbusdevice.cpp @@ -641,9 +641,6 @@ bool QCanBusDevice::waitForFramesWritten(int msecs) return false; } - QScopedValueRollback<bool> guard(d_func()->waitForWrittenEntered); - d_func()->waitForWrittenEntered = true; - if (Q_UNLIKELY(d_func()->state != ConnectedState)) { const QString error = tr("Cannot wait for frames written as device is not connected."); qCWarning(QT_CANBUS, "%ls", qUtf16Printable(error)); @@ -654,6 +651,9 @@ bool QCanBusDevice::waitForFramesWritten(int msecs) if (!framesToWrite()) return false; // nothing pending, nothing to wait upon + QScopedValueRollback<bool> guard(d_func()->waitForWrittenEntered); + d_func()->waitForWrittenEntered = true; + enum { Written = 0, Error, Timeout }; QEventLoop loop; connect(this, &QCanBusDevice::framesWritten, &loop, [&]() { loop.exit(Written); }); @@ -709,9 +709,6 @@ bool QCanBusDevice::waitForFramesReceived(int msecs) return false; } - QScopedValueRollback<bool> guard(d_func()->waitForReceivedEntered); - d_func()->waitForReceivedEntered = true; - if (Q_UNLIKELY(d_func()->state != ConnectedState)) { const QString error = tr("Cannot wait for frames received as device is not connected."); qCWarning(QT_CANBUS, "%ls", qUtf16Printable(error)); @@ -719,6 +716,9 @@ bool QCanBusDevice::waitForFramesReceived(int msecs) return false; } + QScopedValueRollback<bool> guard(d_func()->waitForReceivedEntered); + d_func()->waitForReceivedEntered = true; + enum { Received = 0, Error, Timeout }; QEventLoop loop; connect(this, &QCanBusDevice::framesReceived, &loop, [&]() { loop.exit(Received); }); |