[PATCH] qtbluetooth: add a read timeout
Anton Lundin
glance at acc.umu.se
Mon Sep 21 13:38:16 PDT 2015
This adds a read timeout to the qt serial bluetooth code. This is needed
for error handling and error recovery purposes.
Signed-off-by: Anton Lundin <glance at acc.umu.se>
---
qtserialbluetooth.cpp | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/qtserialbluetooth.cpp b/qtserialbluetooth.cpp
index 442702d..6e717a3 100644
--- a/qtserialbluetooth.cpp
+++ b/qtserialbluetooth.cpp
@@ -248,8 +248,15 @@ static int qt_serial_read(serial_t *device, void* data, unsigned int size)
} else if (rc == 0) {
// Wait until the device is available for read operations
QEventLoop loop;
+ QTimer timer;
+ timer.setSingleShot(true);
+ loop.connect(&timer, SIGNAL(timeout()), SLOT(quit()));
loop.connect(device->socket, SIGNAL(readyRead()), SLOT(quit()));
+ timer.start(device->timeout);
loop.exec();
+
+ if (!timer.isActive())
+ return 0;
}
nbytes += rc;
--
2.1.4
More information about the subsurface
mailing list