migrate to async IO model

new PIIODevice::interrupt() virtual method
new PIWaitEvent private class
PIEthernet and PISerial basically tested on Windows and Linux
This commit is contained in:
2022-11-05 23:43:07 +03:00
parent e48d0ebaab
commit 8a5e72c723
15 changed files with 498 additions and 209 deletions

View File

@@ -1115,7 +1115,7 @@ PIVector<PIIODevice * > PIConnection::DevicePool::boundedDevices(const PIConnect
PIConnection::DevicePool::DeviceData::~DeviceData() {
if (rthread) {
rthread->stop();
rthread->interrupt();
if (dev) dev->interrupt();
if (!rthread->waitForFinish(1000))
rthread->terminate();
delete rthread;