38#define SERENE_RUNTIME_INIT(engine, config) \
39 srn_engine_t *engine = srn_engine_make(srn_mm_init(config), (config)); \
46#define SERENE_RUNTIME_INIT_WITH_SCHED(engine, sched, config) \
47 SERENE_RUNTIME_INIT(engine, config); \
48 srn_scheduler_t *sched = (engine)->scheduler; \
58#define SERENE_RUNTIME_SHUTDOWN(engine) \
60 srn_mm_t *serene_mm_ = (engine)->mm; \
61 srn_engine_shutdown(engine); \
62 srn_mm_shutdown(serene_mm_); \
65#define SERENE_MAIN(f) \
66 int main(int argc, char *argv[]) { return srn_run_fiber_main(&(f), argc, argv); }
AI Generated (🤦) Fiber subsystem overview.
int srn_run_fiber_main(srn_main_t m, int argc, char *argv[])
int(* srn_main_t)(srn_context_t *ctx, int argc, char *argv[])