Header: task.h

Function Summary collapse

Define Summary

#define MRUBY_TASK_H
#define MRB_NUM_TASK_QUEUE

Task queue configuration (mrb_task_state is defined in mruby.h)

#define MRB_TASK_QUEUE_DORMANT

Queue indices

#define MRB_TASK_QUEUE_READY
#define MRB_TASK_QUEUE_WAITING
#define MRB_TASK_QUEUE_SUSPENDED
#define MRB_TICK_UNIT
#define MRB_TIMESLICE_TICK_COUNT
#define TASK_STACK_INIT_SIZE
#define TASK_CI_INIT_SIZE

Function Details

void mrb_tick(mrb_state * mrb)

Core task scheduler API

mrb_value mrb_task_run(mrb_state * mrb)

mrb_value mrb_task_run_once(mrb_state * mrb)

mrb_value mrb_create_task(mrb_state * mrb, struct RProc * proc, mrb_value name, mrb_value priority, mrb_value top_self)

Task creation API

mrb_value mrb_execute_proc_synchronously(mrb_state * mrb, mrb_value proc, mrb_int argc, const mrb_value * argv)

Synchronous execution API (for picoruby-wasm)

void mrb_suspend_task(mrb_state * mrb, mrb_value task)

Task control API Note: mrb_task_run is the main scheduler loop (for picoruby-sandbox and picoruby-wasm)

void mrb_resume_task(mrb_state * mrb, mrb_value task)

void mrb_terminate_task(mrb_state * mrb, mrb_value task)

mrb_bool mrb_stop_task(mrb_state * mrb, mrb_value task)

mrb_value mrb_task_value(mrb_state * mrb, mrb_value task)

mrb_value mrb_task_status(mrb_state * mrb, mrb_value self)

void mrb_task_init_context(mrb_state * mrb, mrb_value task, struct RProc * proc)

Task context management API (for picoruby-sandbox)

void mrb_task_reset_context(mrb_state * mrb, mrb_value task)

void mrb_task_proc_set(mrb_state * mrb, mrb_value task, struct RProc * proc)