|
@@ -141,8 +141,12 @@ void CEventLoop::pump(WaitMode mode)
|
|
|
|
|
|
if (m_exit_requested) {
|
|
|
LOCKER(m_lock);
|
|
|
- // FIXME: Shouldn't we only prepend the events that haven't been processed yet?
|
|
|
- m_queued_events.prepend(move(events));
|
|
|
+ decltype(m_queued_events) new_event_queue;
|
|
|
+ new_event_queue.ensure_capacity(m_queued_events.size() + events.size());
|
|
|
+ for (; i < events.size(); ++i)
|
|
|
+ new_event_queue.unchecked_append(move(events[i]));
|
|
|
+ new_event_queue.append(move(m_queued_events));
|
|
|
+ m_queued_events = move(new_event_queue);
|
|
|
return;
|
|
|
}
|
|
|
}
|