fn swapCancelProtection(userdata: ?*anyopaque, new: Io.CancelProtection) Io.CancelProtection
fn swapCancelProtection(userdata: ?*anyopaque, new: Io.CancelProtection) Io.CancelProtection { const t: *Threaded = @ptrCast(@alignCast(userdata)); _ = t; const thread = Thread.current orelse return .unblocked; const old = thread.cancel_protection; thread.cancel_protection = new; return old; }