diff --git a/api/icsneocpp/eventmanager.cpp b/api/icsneocpp/eventmanager.cpp index 174b3fbd..9e1b6ca7 100644 --- a/api/icsneocpp/eventmanager.cpp +++ b/api/icsneocpp/eventmanager.cpp @@ -99,9 +99,13 @@ void EventManager::addEventInternal(APIEvent event) { } void EventManager::runCallbacks(APIEvent event) { - std::lock_guard lk(callbacksMutex); - for(auto& i : callbacks) - i.second.callIfMatch(std::make_shared(event)); + std::map tempCallbacks; + { + std::lock_guard lk(callbacksMutex); + tempCallbacks = callbacks; + } + for(auto& i : tempCallbacks) + i.second.callIfMatch(std::make_shared(event)); } void EventManager::setEventLimit(size_t newLimit) {