1 local task_manager = {}
3 function task_manager:init()
7 function task_manager:add_task(f)
8 local t = coroutine.create(f)
9 table.insert(self._tasks, t)
13 function task_manager:step()
14 local t_start = socket.gettime()
15 local tasks = self._tasks
17 for _, t in ipairs(tasks) do
18 if coroutine.resume(t) then
19 table.insert(self._tasks, t)
22 self.tps = 1 / (socket.gettime() - t_start)
25 function task_manager:start_tasks()
27 until #self._tasks == 0
30 function task_manager:register_event_interface(e)
31 e._task_manager = self