30 lines
872 B
C
Raw Normal View History

2022-01-20 18:16:08 +08:00
#include "PikaStdTask_Task.h"
#include "PikaVM.h"
extern PikaObj* __pikaMain;
void PikaStdTask_Task___init__(PikaObj* self) {
obj_run(self, "task_list.__init__()");
}
void PikaStdTask_Task_call_always(PikaObj* self, Arg* fun_todo) {
obj_setArg(self, "fun_todo", fun_todo);
obj_run(self, "task_list.append(fun_todo)");
// pikaVM_runAsm(__pikaMain, fun_todo_ptr);
}
void PikaStdTask_Task_do_when(PikaObj* self, Arg* fun_todo, Arg* fun_when) {}
void PikaStdTask_Task_run_once(PikaObj* self) {
/* reference the task_list in __pikaMain */
obj_setPtr(__pikaMain, "__task_list", obj_getPtr(self, "task_list"));
obj_run(__pikaMain,
"for fun_todo in __task_list :\n"
" fun_todo()\n"
"\n"
);
}
void PikaStdTask_Task_run_always(PikaObj *self){
while (1){
PikaStdTask_Task_run_once(self);
}
}