mirror of
https://github.com/neovim/neovim.git
synced 2026-01-28 16:12:01 +10:00
These are not needed after #35129 but making uncrustify still play nice with them was a bit tricky. Unfortunately `uncrustify --update-config-with-doc` breaks strings with backslashes. This issue has been reported upstream, and in the meanwhile auto-update on every single run has been disabled.
41 lines
1.2 KiB
C
41 lines
1.2 KiB
C
#pragma once
|
|
|
|
#include <stdbool.h>
|
|
#include <uv.h>
|
|
|
|
#include "klib/kvec.h"
|
|
#include "nvim/event/defs.h" // IWYU pragma: keep
|
|
#include "nvim/types_defs.h" // IWYU pragma: keep
|
|
|
|
struct loop {
|
|
uv_loop_t uv;
|
|
MultiQueue *events;
|
|
MultiQueue *thread_events;
|
|
// Immediate events.
|
|
// - "Processed after exiting `uv_run()` (to avoid recursion), but before returning from
|
|
// `loop_poll_events()`." 502aee690c98
|
|
// - Practical consequence (for `main_loop`):
|
|
// - these are processed by `state_enter()..input_get()` whereas "regular" events
|
|
// (`main_loop.events`) are processed by `state_enter()..VimState.execute()`
|
|
// - `state_enter()..input_get()` can be "too early" if you want the event to trigger UI
|
|
// updates and other user-activity-related side-effects.
|
|
MultiQueue *fast_events;
|
|
|
|
// used by process/job-control subsystem
|
|
kvec_t(Proc *) children;
|
|
uv_signal_t children_watcher;
|
|
uv_timer_t children_kill_timer;
|
|
|
|
// generic timer, used by loop_poll_events()
|
|
uv_timer_t poll_timer;
|
|
|
|
uv_timer_t exit_delay_timer;
|
|
|
|
uv_async_t async;
|
|
uv_mutex_t mutex;
|
|
int recursive;
|
|
bool closing; ///< Set to true if loop_close() has been called
|
|
};
|
|
|
|
#include "event/loop.h.generated.h"
|