From f041d1435e6016b976635743b1e5f38b8458fe26 Mon Sep 17 00:00:00 2001 From: peri4 Date: Wed, 10 Jul 2024 18:36:29 +0300 Subject: [PATCH] PIIODevice::waitThreadedReadFinished now periodically (100 ms) call interrupt() --- libs/main/io_devices/piiodevice.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/libs/main/io_devices/piiodevice.cpp b/libs/main/io_devices/piiodevice.cpp index 5f3c259b..889b31b1 100644 --- a/libs/main/io_devices/piiodevice.cpp +++ b/libs/main/io_devices/piiodevice.cpp @@ -232,7 +232,16 @@ void PIIODevice::terminateThreadedRead() { bool PIIODevice::waitThreadedReadFinished(int timeout_ms) { - return read_thread.waitForFinish(timeout_ms); + PITimeMeasurer tm, tm_intr; + while (read_thread.isRunning()) { + if (tm.elapsed_m() > timeout_ms) return false; + if (tm_intr.elapsed_m() > 100.) { + tm_intr.reset(); + interrupt(); + } + piMinSleep(); + } + return true; }