summaryrefslogtreecommitdiffstats
path: root/src/serialbus/qcanbusdevice.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/serialbus/qcanbusdevice.cpp')
-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); });