diff --git a/src_main/io_utils/piconnection.cpp b/src_main/io_utils/piconnection.cpp index 575d90ef..63d24ef1 100644 --- a/src_main/io_utils/piconnection.cpp +++ b/src_main/io_utils/piconnection.cpp @@ -1119,13 +1119,14 @@ void PIConnection::DevicePool::run() { void __DevicePool_threadReadDP(void * ddp) { PIConnection::DevicePool::DeviceData * dd((PIConnection::DevicePool::DeviceData * )ddp); if (dd->dev == 0) {piMSleep(100); return;} - if (dd->dev->isClosed()) - if (!dd->dev->open()) {piMSleep(dd->dev->reopenTimeout()); return;} + PIIODevice * dev = dd->dev; + if (dev->isClosed()) + if (!dev->open()) {piMSleep(dev->reopenTimeout()); return;} PIByteArray ba; - ba = dd->dev->read(dd->dev->threadedReadBufferSize()); + ba = dev->read(dev->threadedReadBufferSize()); // dd->dev->threadedRead(ba.data(), ba.size()); if (ba.isEmpty()) {piMSleep(10); return;} - dd->dev->threadedRead(ba.data(), ba.size_s()); + dev->threadedRead(ba.data(), ba.size_s()); //piCout << "Readed from" << dd->dev->path() << Hex << ba; __device_pool__->deviceReaded(dd, ba); }