diff --git a/core/src/Variable/VariableAcquisitionWorker.cpp b/core/src/Variable/VariableAcquisitionWorker.cpp index 9a8f896..1a26737 100644 --- a/core/src/Variable/VariableAcquisitionWorker.cpp +++ b/core/src/Variable/VariableAcquisitionWorker.cpp @@ -96,14 +96,13 @@ QUuid VariableAcquisitionWorker::pushVariableRequest(QUuid varRequestId, QUuid v auto oldAcqRequest = acqIdentifierToAcqRequestMapIt->second; varRequestIdCanceled = oldAcqRequest.m_VarRequestId; } - // remove old acqIdentifier from the worker - impl->cancelVarRequest(oldAcqId); - // impl->m_AcqIdentifierToAcqRequestMap.erase(oldAcqId); it->second.second = acqRequest.m_AcqIdentifier; - - impl->unlock(); + + // remove old acqIdentifier from the worker + impl->cancelVarRequest(oldAcqId); + // impl->m_AcqIdentifierToAcqRequestMap.erase(oldAcqId); } else { // First request for the variable, it must be stored and executed @@ -344,6 +343,7 @@ void VariableAcquisitionWorker::VariableAcquisitionWorkerPrivate::updateToNextRe void VariableAcquisitionWorker::VariableAcquisitionWorkerPrivate::cancelVarRequest( QUuid varRequestId) { + qInfo() << "VariableAcquisitionWorkerPrivate::cancelVarRequest 0"; lockRead(); // get all AcqIdentifier in link with varRequestId QVector acqIdsToRm; @@ -359,23 +359,29 @@ void VariableAcquisitionWorker::VariableAcquisitionWorkerPrivate::cancelVarReque for (auto acqId : acqIdsToRm) { removeAcqRequest(acqId); } + qInfo() << "VariableAcquisitionWorkerPrivate::cancelVarRequest end"; } void VariableAcquisitionWorker::VariableAcquisitionWorkerPrivate::removeAcqRequest( QUuid acqRequestId) { + qInfo() << "VariableAcquisitionWorkerPrivate::removeAcqRequest 0"; QUuid vIdentifier; std::shared_ptr provider; lockRead(); auto acqIt = m_AcqIdentifierToAcqRequestMap.find(acqRequestId); + qInfo() << "VariableAcquisitionWorkerPrivate::removeAcqRequest 1"; if (acqIt != m_AcqIdentifierToAcqRequestMap.cend()) { vIdentifier = acqIt->second.m_vIdentifier; provider = acqIt->second.m_Provider; + qInfo() << "VariableAcquisitionWorkerPrivate::removeAcqRequest 2"; auto it = m_VIdentifierToCurrrentAcqIdNextIdPairMap.find(vIdentifier); if (it != m_VIdentifierToCurrrentAcqIdNextIdPairMap.cend()) { + qInfo() << "VariableAcquisitionWorkerPrivate::removeAcqRequest 3"; if (it->second.first == acqRequestId) { // acqRequest is currently running -> let's aborting it + qInfo() << "VariableAcquisitionWorkerPrivate::removeAcqRequest 4"; unlock(); // Remove the current request from the worker @@ -383,27 +389,34 @@ void VariableAcquisitionWorker::VariableAcquisitionWorkerPrivate::removeAcqReque // notify the request aborting to the provider provider->requestDataAborting(acqRequestId); + qInfo() << "VariableAcquisitionWorkerPrivate::removeAcqRequest 5"; } else if (it->second.second == acqRequestId) { it->second.second = QUuid(); + qInfo() << "VariableAcquisitionWorkerPrivate::removeAcqRequest 6"; unlock(); } else { + qInfo() << "VariableAcquisitionWorkerPrivate::removeAcqRequest 7"; unlock(); } } else { + qInfo() << "VariableAcquisitionWorkerPrivate::removeAcqRequest 8"; unlock(); } } else { + qInfo() << "VariableAcquisitionWorkerPrivate::removeAcqRequest 9"; unlock(); } + qInfo() << "VariableAcquisitionWorkerPrivate::removeAcqRequest 10"; lockWrite(); m_AcqIdentifierToAcqDataPacketVectorMap.erase(acqRequestId); m_AcqIdentifierToAcqRequestMap.erase(acqRequestId); unlock(); + qInfo() << "VariableAcquisitionWorkerPrivate::removeAcqRequest 11"; }