diff --git a/lib/std/Io/Threaded/test.zig b/lib/std/Io/Threaded/test.zig index 6b8b858075..ef24b25f34 100644 --- a/lib/std/Io/Threaded/test.zig +++ b/lib/std/Io/Threaded/test.zig @@ -1,3 +1,5 @@ +const builtin = @import("builtin"); + const std = @import("std"); const Io = std.Io; const testing = std.testing; @@ -12,7 +14,12 @@ test "concurrent vs main prevents deadlock via oversubscription" { var queue: Io.Queue(u8) = .init(&.{}); - var putter = try io.concurrent(put, .{ io, &queue }); + var putter = io.concurrent(put, .{ io, &queue }) catch |err| switch (err) { + error.ConcurrencyUnavailable => { + try testing.expect(builtin.single_threaded); + return; + }, + }; defer putter.cancel(io); try testing.expectEqual(42, queue.getOneUncancelable(io)); @@ -35,7 +42,12 @@ test "concurrent vs concurrent prevents deadlock via oversubscription" { var queue: Io.Queue(u8) = .init(&.{}); - var putter = try io.concurrent(put, .{ io, &queue }); + var putter = io.concurrent(put, .{ io, &queue }) catch |err| switch (err) { + error.ConcurrencyUnavailable => { + try testing.expect(builtin.single_threaded); + return; + }, + }; defer putter.cancel(io); var getter = try io.concurrent(get, .{ io, &queue }); diff --git a/lib/std/Io/test.zig b/lib/std/Io/test.zig index 002a082ee8..fcced60677 100644 --- a/lib/std/Io/test.zig +++ b/lib/std/Io/test.zig @@ -177,7 +177,12 @@ test "select" { var queue: Io.Queue(u8) = .init(&.{}); - var get_a = try io.concurrent(Io.Queue(u8).getOne, .{ &queue, io }); + var get_a = io.concurrent(Io.Queue(u8).getOne, .{ &queue, io }) catch |err| switch (err) { + error.ConcurrencyUnavailable => { + try testing.expect(builtin.single_threaded); + return; + }, + }; defer if (get_a.cancel(io)) |_| @panic("fail") else |err| assert(err == error.Canceled); var get_b = try io.concurrent(Io.Queue(u8).getOne, .{ &queue, io });