pub fn testingPrint(io: *const Io) void {
io.sleep(std.Io.Duration.fromSeconds(10), std.Io.Clock.real) catch {
std.debug.print("Io was cancelled before it could finish sleeping\n", .{});
};
io.sleep(std.Io.Duration.fromSeconds(10), std.Io.Clock.real) catch {
std.debug.print("Io was cancelled before it could finish sleeping\n", .{});
return;
};
std.log.debug("test", .{});
}
pub fn main(init: std.process.Init) !void {
const io = init.io;
var res = io.async(testingPrint, .{&io});
res.cancel(io);
res.cancel(io);
}
Expected:
❯ zig build run
Io was cancelled before it could finish sleeping
Io was cancelled before it could finish sleeping
but got:
❯ zig build run
Io was cancelled before it could finish sleeping
debug: test