EventManager: Fix potential ABBA deadlock if callback contains locks

This commit is contained in:
Max Brombach
2026-10-02 15:38:59 -04:00
committed by Kyle Schwarz
parent 3932b54947
commit fb241dc5cd
+5 -1
View File
@@ -99,8 +99,12 @@ void EventManager::addEventInternal(APIEvent event) {
}
void EventManager::runCallbacks(APIEvent event) {
std::map<int, icsneo::EventCallback> tempCallbacks;
{
std::lock_guard<std::mutex> lk(callbacksMutex);
for(auto& i : callbacks)
tempCallbacks = callbacks;
}
for(auto& i : tempCallbacks)
i.second.callIfMatch(std::make_shared<APIEvent>(event));
}