From 59c7e99e5025cd0631ca97c6abaf4c44c0e6ea14 Mon Sep 17 00:00:00 2001 From: peri4 Date: Wed, 26 Aug 2026 11:38:30 +0300 Subject: [PATCH] add PIIODevice::shutdown() --- libs/main/io_devices/piiodevice.cpp | 8 ++++++++ libs/main/io_devices/piiodevice.h | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/libs/main/io_devices/piiodevice.cpp b/libs/main/io_devices/piiodevice.cpp index c3fb8b73..b3dcb165 100644 --- a/libs/main/io_devices/piiodevice.cpp +++ b/libs/main/io_devices/piiodevice.cpp @@ -302,6 +302,14 @@ void PIIODevice::stopAndWait(PISystemTime timeout) { } +void PIIODevice::shutdown(PISystemTime timeout) { + stop(); + close(); + waitThreadedReadFinished(timeout); + waitThreadedWriteFinished(timeout); +} + + ssize_t PIIODevice::read(void * read_to, ssize_t max_size) { ssize_t ret = readDevice(read_to, max_size); return ret; diff --git a/libs/main/io_devices/piiodevice.h b/libs/main/io_devices/piiodevice.h index 118f3c53..fcdf5935 100644 --- a/libs/main/io_devices/piiodevice.h +++ b/libs/main/io_devices/piiodevice.h @@ -330,6 +330,10 @@ public: //! \~russian Останавливает оба фоновых потока и ожидает их завершения. void stopAndWait(PISystemTime timeout = {}); + //! \~english Stops both background threads, close device and waits for threads completion. + //! \~russian Останавливает оба фоновых потока, закрывает устройство и ожидает завершения потоков. + void shutdown(PISystemTime timeout = {}); + //! \~english Interrupts a blocking device operation. //! \~russian Прерывает блокирующую операцию устройства. virtual void interrupt() {}