From 9cd05808323f7512aa12577b094e0872de44465f Mon Sep 17 00:00:00 2001 From: dimgigov Date: Wed, 10 Jun 2026 19:45:24 +0300 Subject: [PATCH] feat(task): add full green thread API (Init, Wait, Yield, CurrentId, Shutdown) --- lib/Task.bux | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/lib/Task.bux b/lib/Task.bux index d9ee295..70e159b 100644 --- a/lib/Task.bux +++ b/lib/Task.bux @@ -1,18 +1,26 @@ module Std::Task { +extern func bux_task_init(num_workers: int); extern func bux_task_spawn(fn: *void, arg: *void) -> *void; extern func bux_task_join(handle: *void); extern func bux_task_sleep(ms: int64); +extern func bux_task_yield(); +extern func bux_task_current_id() -> int; +extern func bux_task_shutdown(); struct TaskHandle { handle: *void; } +func Task_Init(num_workers: int) { + bux_task_init(num_workers); +} + func Task_Spawn(fn: *void, arg: *void) -> TaskHandle { return TaskHandle { handle: bux_task_spawn(fn, arg) }; } -func Task_Join(t: TaskHandle) { +func Task_Wait(t: TaskHandle) { bux_task_join(t.handle); } @@ -20,4 +28,16 @@ func Task_Sleep(ms: int64) { bux_task_sleep(ms); } +func Task_Yield() { + bux_task_yield(); +} + +func Task_CurrentId() -> int { + return bux_task_current_id(); +} + +func Task_Shutdown() { + bux_task_shutdown(); +} + }