diff --git a/libs/main/io_devices/piserial.cpp b/libs/main/io_devices/piserial.cpp index 13d66f64..0adb790f 100644 --- a/libs/main/io_devices/piserial.cpp +++ b/libs/main/io_devices/piserial.cpp @@ -889,7 +889,9 @@ ssize_t PISerial::readDevice(void * read_to, ssize_t max_size) { return PRIVATE->readed; #else if (!canRead()) return -1; - if (!PRIVATE->event.wait(fd)) return -1; + if (isOptionSet(PIIODevice::BlockingRead)) { + if (!PRIVATE->event.wait(fd)) return -1; + } ssize_t ret = ::read(fd, read_to, max_size); if (ret < 0) { int err = errno;