aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/os/event.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/os/event.c')
-rw-r--r--src/nvim/os/event.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/nvim/os/event.c b/src/nvim/os/event.c
index 0528339865..6367a60af7 100644
--- a/src/nvim/os/event.c
+++ b/src/nvim/os/event.c
@@ -94,16 +94,18 @@ bool event_poll(int32_t ms)
run_mode = UV_RUN_NOWAIT;
}
- bool events_processed;
+ size_t processed_events;
do {
// Run one event loop iteration, blocking for events if run_mode is
// UV_RUN_ONCE
+ DLOG("Entering event loop");
uv_run(uv_default_loop(), run_mode);
- events_processed = event_process(false);
+ processed_events = event_process(false);
+ DLOG("Exited event loop, processed %u events", processed_events);
} while (
// Continue running if ...
- !events_processed && // we didn't process any immediate events
+ !processed_events && // we didn't process any immediate events
!event_has_deferred() && // no events are waiting to be processed
run_mode != UV_RUN_NOWAIT && // ms != 0
!timer_data.timed_out); // we didn't get a timeout
@@ -122,7 +124,7 @@ bool event_poll(int32_t ms)
event_process(false);
}
- return !timer_data.timed_out && (events_processed || event_has_deferred());
+ return !timer_data.timed_out && (processed_events || event_has_deferred());
}
bool event_has_deferred(void)
@@ -137,13 +139,12 @@ void event_push(Event event, bool deferred)
}
// Runs the appropriate action for each queued event
-bool event_process(bool deferred)
+size_t event_process(bool deferred)
{
- bool processed_events = false;
+ size_t count = 0;
Event event;
while (kl_shift(Event, get_queue(deferred), &event) == 0) {
- processed_events = true;
switch (event.type) {
case kEventSignal:
signal_handle(event);
@@ -157,9 +158,10 @@ bool event_process(bool deferred)
default:
abort();
}
+ count++;
}
- return processed_events;
+ return count;
}
// Set a flag in the `event_poll` loop for signaling of a timeout