22typedef struct xtc_exec xtc_exec_t;
51int xtc_exec_init(xtc_exec_t **out,
int n_loops);
52int xtc_exec_fini(xtc_exec_t *exec);
53int xtc_exec_run(xtc_exec_t *exec);
58void xtc_exec_set_service_mode(xtc_exec_t *exec,
int on);
59int xtc_exec_set_preempt(xtc_exec_t *exec, int64_t interval_ns);
60int xtc_exec_stop(xtc_exec_t *exec);
62int xtc_exec_n_loops(xtc_exec_t *exec);
69int xtc_exec_loop_id(
void);
76int xtc_shard_id(
void);
77int xtc_shard_count(
void);
80xtc_loop_t *xtc_exec_loop(xtc_exec_t *exec,
int idx);
93typedef struct xtc_loop_stats {
107int xtc_exec_spawn(xtc_exec_t *exec, xtc_task_fn fn,
void *user,
108 xtc_task_t **out_task);
109int xtc_exec_spawn_on(xtc_exec_t *exec,
int loop_idx,
110 xtc_task_fn fn,
void *user, xtc_task_t **out_task);
111int xtc_exec_async(xtc_exec_t *exec, xtc_coro_fn fn,
void *arg,
112 xtc_task_t **out_task);
113int xtc_exec_async_on(xtc_exec_t *exec,
int loop_idx,
114 xtc_coro_fn fn,
void *arg, xtc_task_t **out_task);