diff --git a/osal/host/QueueMapManager.cpp b/osal/host/QueueMapManager.cpp index e7c86f306..89b9a948f 100644 --- a/osal/host/QueueMapManager.cpp +++ b/osal/host/QueueMapManager.cpp @@ -17,6 +17,10 @@ QueueMapManager* QueueMapManager::instance() { ReturnValue_t QueueMapManager::addMessageQueue( MessageQueueIF* queueToInsert, MessageQueueId_t* id) { + // Not thread-safe, but it is assumed all message queues are created + // at software initialization now. If this is to be made thread-safe in + // the future, it propably would be sufficient to lock the increment + // operation here uint32_t currentId = queueCounter++; auto returnPair = queueMap.emplace(currentId, queueToInsert); if(not returnPair.second) { @@ -28,7 +32,6 @@ ReturnValue_t QueueMapManager::addMessageQueue( if (id != nullptr) { *id = currentId; } - mapLock = MutexFactory::instance()->createMutex(); return HasReturnvaluesIF::RETURN_OK; } diff --git a/osal/host/QueueMapManager.h b/osal/host/QueueMapManager.h index 499b1622a..a2a1b6581 100644 --- a/osal/host/QueueMapManager.h +++ b/osal/host/QueueMapManager.h @@ -36,7 +36,7 @@ public: private: //! External instantiation is forbidden. QueueMapManager(); - std::atomic queueCounter = 1; + uint32_t queueCounter = 1; MutexIF* mapLock; QueueMap queueMap; static QueueMapManager* mqManagerInstance;