From 505364a66123934e9f682b5e02ca6edb36e3e087 Mon Sep 17 00:00:00 2001 From: luaneko Date: Sat, 28 Jun 2025 19:59:37 +1000 Subject: [PATCH] Check argument against negative sleep duration --- crates/lb/src/task.rs | 2 +- crates/lb/tests/task.lua | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/crates/lb/src/task.rs b/crates/lb/src/task.rs index 3aa017e..ab1e7c7 100644 --- a/crates/lb/src/task.rs +++ b/crates/lb/src/task.rs @@ -36,7 +36,7 @@ impl lb_tasklib { } pub async extern "Lua-C" fn sleep(ms: f64) { - sleep(Duration::from_secs_f64(ms / 1000.)).await; + sleep(Duration::from_secs_f64(ms.max(0.) / 1000.)).await; } pub extern "Lua" fn spawn(f: function, ...) -> lb_task { diff --git a/crates/lb/tests/task.lua b/crates/lb/tests/task.lua index 6e029f1..2446af8 100644 --- a/crates/lb/tests/task.lua +++ b/crates/lb/tests/task.lua @@ -111,6 +111,11 @@ describe("spawn", function() end) describe("sleep", function() + test("invalid arg", function() + assert(not pcall(task.sleep, "invalid")) + task.sleep(-1) -- negative sleep should just become 0ms + end) + test("sleep is asynchronous", function() local value spawn(function()