diff --git a/src_main/io_utils/piconnection.cpp b/src_main/io_utils/piconnection.cpp index 55b1c63a..3d1bc27a 100644 --- a/src_main/io_utils/piconnection.cpp +++ b/src_main/io_utils/piconnection.cpp @@ -939,6 +939,10 @@ PIConnection::DevicePool::DevicePool(): PIThread(false, 10) { } +PIConnection::DevicePool::~DevicePool() { +} + + void PIConnection::DevicePool::init() { if (!isRunning()) start(10); @@ -1088,14 +1092,12 @@ PIVector PIConnection::DevicePool::boundedDevices(const PIConnect PIConnection::DevicePool::DeviceData::~DeviceData() { - if (rthread != 0) { - rthread->stop(); - if (!rthread->waitForFinish(1000)) - rthread->terminate(); + if (rthread) { + rthread->terminate(); delete rthread; rthread = 0; } - if (dev != 0) { + if (dev) { dev->close(); delete dev; dev = 0; diff --git a/src_main/io_utils/piconnection.h b/src_main/io_utils/piconnection.h index d43c8ecb..7f28d6dd 100644 --- a/src_main/io_utils/piconnection.h +++ b/src_main/io_utils/piconnection.h @@ -290,6 +290,7 @@ public: struct DeviceData; public: DevicePool(); + ~DevicePool(); void init(); PIIODevice * addDevice(PIConnection * parent, const PIString & fp, PIIODevice::DeviceMode mode = PIIODevice::ReadWrite, bool start = true);