From e9349cdc9239a18bb77aa768210e22a2c013eb81 Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Tue, 6 Dec 2016 13:55:53 +0000 Subject: Ensure timers are still alive when trying to run them --- src/event_manager.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/event_manager.cc b/src/event_manager.cc index 221a6d0d..11fb5c44 100644 --- a/src/event_manager.cc +++ b/src/event_manager.cc @@ -133,9 +133,10 @@ void EventManager::handle_next_events(EventMode mode, sigset_t* sigmask) } TimePoint now = Clock::now(); - for (auto& timer : m_timers) + auto timers = m_timers; // copy timers in case m_timers gets mutated + for (auto& timer : timers) { - if (timer->next_date() <= now) + if (contains(m_timers, timer) and timer->next_date() <= now) timer->run(mode); } } -- cgit v1.2.3