diff --git a/CMakeLists.txt b/CMakeLists.txt index ed5f1332..eca7ded9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,7 @@ if (POLICY CMP0177) endif() project(PIP) set(PIP_MAJOR 5) -set(PIP_MINOR 4) +set(PIP_MINOR 5) set(PIP_REVISION 0) set(PIP_SUFFIX ) set(PIP_COMPANY SHS) diff --git a/libs/main/io_devices/piiodevice.cpp b/libs/main/io_devices/piiodevice.cpp index 42cd04ca..45344dd4 100644 --- a/libs/main/io_devices/piiodevice.cpp +++ b/libs/main/io_devices/piiodevice.cpp @@ -390,7 +390,7 @@ void PIIODevice::read_func() { ssize_t readed_ = read(buffer_tr.data(), buffer_tr.size_s()); if (read_thread.isStopping()) return; if (readed_ <= 0) { - piMSleep(10); + piMSleep(threaded_read_timeout_ms); // cout << readed_ << ", " << errno << ", " << errorString() << endl; return; } diff --git a/libs/main/io_devices/piiodevice.h b/libs/main/io_devices/piiodevice.h index 9b4f92d8..ff5d7153 100644 --- a/libs/main/io_devices/piiodevice.h +++ b/libs/main/io_devices/piiodevice.h @@ -271,6 +271,10 @@ public: bool waitThreadedReadFinished(PISystemTime timeout = {}); + uint threadedReadTimeout() const { return threaded_read_timeout_ms; } + void setThreadedReadTimeout(uint ms) { threaded_read_timeout_ms = ms; } + + //! \~english Returns if threaded write is started //! \~russian Возвращает запущен ли поток записи bool isThreadedWrite() const; @@ -591,7 +595,7 @@ private: PIQueue> write_queue; PISystemTime reopen_timeout; ullong tri = 0; - uint threaded_read_buffer_size; + uint threaded_read_buffer_size, threaded_read_timeout_ms = 10; bool reopen_enabled = true, destroying = false; static PIMutex nfp_mutex;