From 3a975db66a3711f34e8b64bb27a8eaca79fdeca9 Mon Sep 17 00:00:00 2001 From: Alex Pickering Date: Sun, 1 Feb 2026 13:14:32 -0600 Subject: Initial commit --- src/task.moon | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/task.moon (limited to 'src/task.moon') diff --git a/src/task.moon b/src/task.moon new file mode 100644 index 0000000..342255e --- /dev/null +++ b/src/task.moon @@ -0,0 +1,25 @@ +task = {} +tasks = {} + +task.add = (co) -> + tasks[co] = true + +task.pump = () -> + for task, _ in pairs tasks + if coroutine.status(task) ~= "dead" + succ, err = coroutine.resume(task) + if not succ + error(debug.traceback(task, err)) + else + tasks[task] = nil + +task.await = (co) -> + if tasks[co] + coroutine.yield! + +task.node = am.group! +task.node\action(() -> + task.pump! +) + +task -- cgit v1.2.3-70-g09d2