diff --git a/subscriber-notifs/include/core/subscribable.hpp b/subscriber-notifs/include/core/subscribable.hpp index dc47bc5..e6c8159 100644 --- a/subscriber-notifs/include/core/subscribable.hpp +++ b/subscriber-notifs/include/core/subscribable.hpp @@ -39,7 +39,10 @@ class Subscribable { return; } - for (auto& subscriber : entry->second) { + // edge case: if a subscriber unsubscribes itself during notification + // this modifies the vector and makes my iterators invalid + auto subscribersCopy = entry->second; + for (auto& subscriber : subscribersCopy) { subscriber->onNotification(eventId, eventInfo); } }