fix: addDevice deletes read thread without stopAndWait — race on dev close/open
This commit is contained in:
@@ -1000,6 +1000,7 @@ PIIODevice * PIConnection::DevicePool::addDevice(PIConnection * parent, const PI
|
|||||||
if (pmode == mode || pmode == PIIODevice::ReadWrite) return dd->dev;
|
if (pmode == mode || pmode == PIIODevice::ReadWrite) return dd->dev;
|
||||||
if ((mode & PIIODevice::ReadOnly) > 0) {
|
if ((mode & PIIODevice::ReadOnly) > 0) {
|
||||||
if (dd->rthread) {
|
if (dd->rthread) {
|
||||||
|
dd->rthread->stopAndWait();
|
||||||
delete dd->rthread;
|
delete dd->rthread;
|
||||||
dd->rthread = nullptr;
|
dd->rthread = nullptr;
|
||||||
dd->started = false;
|
dd->started = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user