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 <gla...@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 _______________________________________________ subsurface mailing list subsurface@subsurface-divelog.org http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface