summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndre Hartmann <aha_1980@gmx.de>2019-07-30 22:40:35 +0200
committerAndre Hartmann <aha_1980@gmx.de>2019-08-01 16:09:27 +0200
commit1bac9b37a9982eb5bf44f0fb16f580c2c1c1d959 (patch)
tree50ff29185f54053627fa532a3efc06b385ce2f76 /src
parentfd9b9c73ca60c66d01376ddbd6d36e9ea2dfa95c (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.cpp12
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); });