mirror of
https://github.com/neovim/neovim.git
synced 2025-10-12 12:56:04 +00:00
event: Refactor async event processing
- Improve the implementation of deferred/immediate events. - Use the new queue module to change how/when events are queued/processed by giving a private queue to each emitter. - Immediate events(which only exist to break uv_run recursion) are now represented in the `loop->fast_events` queue. - Events pushed to child queues are propagated to the event loop main queue and processed as K_EVENT keys.
This commit is contained in:
@@ -157,11 +157,11 @@ void event_init(void)
|
||||
|
||||
void event_teardown(void)
|
||||
{
|
||||
if (!loop.deferred_events) {
|
||||
if (!loop.events) {
|
||||
return;
|
||||
}
|
||||
|
||||
loop_process_all_events(&loop);
|
||||
queue_process_events(loop.events);
|
||||
input_stop();
|
||||
channel_teardown();
|
||||
process_teardown(&loop);
|
||||
|
Reference in New Issue
Block a user