diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2012-10-27 15:15:34 +0200 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2012-10-27 15:15:34 +0200 |
| commit | 031ed91ea61ad750485c4e0e4e211097a34f80e8 (patch) | |
| tree | d1b9d231aa264992ad6fbd49c4ff634a8b4667f5 /src | |
| parent | b199cfd64424343f010198a5148db71a8b76c143 (diff) | |
EventManager: handle forced events even when poll return -1
Diffstat (limited to 'src')
| -rw-r--r-- | src/event_manager.cc | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/src/event_manager.cc b/src/event_manager.cc index daa363f7..12b23f7e 100644 --- a/src/event_manager.cc +++ b/src/event_manager.cc @@ -35,15 +35,13 @@ void EventManager::handle_next_events() { const int timeout_ms = 100; int res = poll(m_events.data(), m_events.size(), timeout_ms); - if (res >= 0) + for (size_t i = 0; i < m_events.size(); ++i) { - for (size_t i = 0; i < m_events.size(); ++i) - { - if (m_events[i].revents or contains(m_forced, m_events[i].fd)) - m_handlers[i](m_events[i].fd); - } - m_forced.clear(); + if ((res > 0 and m_events[i].revents) or + contains(m_forced, m_events[i].fd)) + m_handlers[i](m_events[i].fd); } + m_forced.clear(); } void EventManager::force_signal(int fd) |
