mirror of
https://gitee.com/Lyon1998/pikapython.git
synced 2025-01-29 17:22:56 +08:00
30 lines
872 B
C
30 lines
872 B
C
|
#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);
|
||
|
}
|
||
|
}
|