Requests for the operating system to forcibly terminate the child process, then blocks until it terminates, then cleans up all resources.
Idempotent and does nothing after wait returns.
Uncancelable. Ignores unexpected errors from the operating system.
pub fn kill(child: *Child, io: Io) void
pub fn kill(child: *Child, io: Io) void {
if (child.id == null) {
assert(child.stdin == null);
assert(child.stdout == null);
assert(child.stderr == null);
return;
}
io.vtable.childKill(io.userdata, child);
assert(child.id == null);
}