port locking sometimes deadlocks when used together with syncronous software and sometimes crashes the timer queue
This commit is contained in:
@ -534,15 +534,6 @@ lockHandler()
|
|||||||
debug("AsynDriverInterface::lockHandler(%s)\n",
|
debug("AsynDriverInterface::lockHandler(%s)\n",
|
||||||
clientName());
|
clientName());
|
||||||
pasynManager->blockProcessCallback(pasynUser, false);
|
pasynManager->blockProcessCallback(pasynUser, false);
|
||||||
|
|
||||||
#ifndef ASYN_VERSION // asyn < 4.14
|
|
||||||
asynStatus status;
|
|
||||||
status = pasynManager->lockPort(pasynUser);
|
|
||||||
if(status!=asynSuccess) {
|
|
||||||
debug("Failed locking port");
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
connected = connectToAsynPort();
|
connected = connectToAsynPort();
|
||||||
lockCallback(connected ? StreamIoSuccess : StreamIoFault);
|
lockCallback(connected ? StreamIoSuccess : StreamIoFault);
|
||||||
}
|
}
|
||||||
@ -553,15 +544,6 @@ unlock()
|
|||||||
{
|
{
|
||||||
debug("AsynDriverInterface::unlock(%s)\n",
|
debug("AsynDriverInterface::unlock(%s)\n",
|
||||||
clientName());
|
clientName());
|
||||||
|
|
||||||
#ifndef ASYN_VERSION // asyn < 4.14
|
|
||||||
asynStatus status;
|
|
||||||
status = pasynManager->unlockPort(pasynUser);
|
|
||||||
if (status != asynSuccess) {
|
|
||||||
debug("Failed unlocking port");
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
pasynManager->unblockProcessCallback(pasynUser, false);
|
pasynManager->unblockProcessCallback(pasynUser, false);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user