60 xtc_timer_t *park_timer;
79 _Atomic uint32_t wake_revents;
99 void (*cleanup)(
void *cleanup_arg);
137 enum xtc_inbox_kind kind;
160 xtc_timer_t **timers;
168 xtc_timer_t *all_timers;
173 struct xtc_slab *timer_slab;
194 _Atomic uint64_t n_tasks_run;
195 _Atomic uint64_t n_steals;
202 unsigned int runs_since_poll;
208 int64_t yield_budget_ns;
209 _Atomic uint64_t n_yield_due;
222 struct xtc_exec *exec;
234int __xtc_loop_enqueue(xtc_loop_t *loop, xtc_task_t *t);
237int __xtc_task_spawn_ex(xtc_loop_t *loop, xtc_task_fn fn,
void *user,
238 int pinned, xtc_task_t **out_task);
239int __xtc_timer_heap_push(xtc_loop_t *loop, xtc_timer_t *t);
240xtc_timer_t *__xtc_timer_heap_pop_due(xtc_loop_t *loop, int64_t now_ns);
241int64_t __xtc_timer_heap_next_deadline(xtc_loop_t *loop);
242int __xtc_loop_dispatch_event(xtc_loop_t *loop,
xtc_io_event_t *ev);
247void __xtc_proc_loop_unregister(xtc_loop_t *loop);
250int __xtc_inbox_init(
struct xtc_inbox *ib);
251void __xtc_inbox_fini(
struct xtc_inbox *ib);
252int __xtc_inbox_push(
struct xtc_inbox *ib,
enum xtc_inbox_kind k, xtc_task_t *t);
253int __xtc_inbox_drain(xtc_loop_t *loop);
257extern XTC_THREAD_LOCAL xtc_loop_t *__xtc_current_loop;
270extern void *(*__xtc_fiber_ctx_save)(void);
271extern void (*__xtc_fiber_ctx_restore)(
void *);
281extern void (*__xtc_fiber_kill_check)(void);