QueueMapManager bugfix #444

Merged
mohr merged 7 commits from mueller/queuemapmanager-bugfix into development 2021-07-19 15:04:10 +02:00
2 changed files with 6 additions and 1 deletions
Showing only changes of commit 0b45e5c89a - Show all commits

View File

@ -25,6 +25,10 @@ ReturnValue_t QueueMapManager::addMessageQueue(
MessageQueueIF* queueToInsert, MessageQueueId_t* id) {
MutexGuard lock(mapLock);
uint32_t currentId = queueCounter++;
if(currentId == MessageQueueIF::NO_QUEUE) {
// Skip the NO_QUEUE value
currentId = queueCounter++;
}
auto returnPair = queueMap.emplace(currentId, queueToInsert);
if(not returnPair.second) {
/* This should never happen for the atomic variable. */

View File

@ -41,7 +41,8 @@ private:
QueueMapManager();
~QueueMapManager();
uint32_t queueCounter = 0;
// Start at 1 because 0 might be the NO_QUEUE value
uint32_t queueCounter = 1;
MutexIF* mapLock;
QueueMap queueMap;
static QueueMapManager* mqManagerInstance;