mirror of
https://github.com/intrepidcs/libicsneo.git
synced 2026-08-05 01:18:36 +02:00
Reordered error downgrading, order of going offline, and renamed locks
This commit is contained in:
@@ -156,14 +156,15 @@ void Communication::readTask() {
|
||||
|
||||
std::lock_guard<std::mutex> lk(messageCallbacksLock);
|
||||
|
||||
// We want callbacks to be able to access errors
|
||||
EventManager::GetInstance().cancelErrorDowngradingOnCurrentThread();
|
||||
for(auto& cb : messageCallbacks) {
|
||||
if(!closing) { // We might have closed while reading or processing
|
||||
// We want callbacks to be able to access errors
|
||||
EventManager::GetInstance().cancelErrorDowngradingOnCurrentThread();
|
||||
cb.second.callIfMatch(msg);
|
||||
EventManager::GetInstance().downgradeErrorsOnCurrentThread();
|
||||
}
|
||||
}
|
||||
EventManager::GetInstance().downgradeErrorsOnCurrentThread();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -113,14 +113,14 @@ void MultiChannelCommunication::readTask() {
|
||||
continue;
|
||||
}
|
||||
|
||||
// We want callbacks to be able to access errors
|
||||
EventManager::GetInstance().cancelErrorDowngradingOnCurrentThread();
|
||||
for(auto& cb : messageCallbacks) { // We might have closed while reading or processing
|
||||
if(!closing) {
|
||||
// We want callbacks to be able to access errors
|
||||
EventManager::GetInstance().cancelErrorDowngradingOnCurrentThread();
|
||||
cb.second.callIfMatch(msg);
|
||||
EventManager::GetInstance().downgradeErrorsOnCurrentThread();
|
||||
}
|
||||
}
|
||||
EventManager::GetInstance().downgradeErrorsOnCurrentThread();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -203,14 +203,14 @@ bool Device::close() {
|
||||
return false;
|
||||
}
|
||||
|
||||
if(isOnline())
|
||||
goOffline();
|
||||
|
||||
if(internalHandlerCallbackID)
|
||||
com->removeMessageCallback(internalHandlerCallbackID);
|
||||
|
||||
internalHandlerCallbackID = 0;
|
||||
|
||||
if(isOnline())
|
||||
goOffline();
|
||||
|
||||
return com->close();
|
||||
}
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ public:
|
||||
eventsLock.unlock();
|
||||
runCallbacks(event);
|
||||
} else {
|
||||
std::lock_guard<std::mutex> lk(errorsMutex);
|
||||
std::lock_guard<std::mutex> errorsLock(errorsMutex);
|
||||
add_internal_error(event);
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -293,7 +293,6 @@ void STM32::readTask() {
|
||||
if(bytesRead > 0)
|
||||
readQueue.enqueue_bulk(readbuf, bytesRead);
|
||||
}
|
||||
EventManager::GetInstance().cancelErrorDowngradingOnCurrentThread();
|
||||
}
|
||||
|
||||
void STM32::writeTask() {
|
||||
|
||||
Reference in New Issue
Block a user