Zig 0.17.0-dev (Split by item) This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig standard library.
std › Io › Threaded › childWaitWindows Private Function childWaitWindows Doc Source Private Function std.Io.Threaded.childWaitWindows
fn childWaitWindows (child : *process .Child ) process .Child .WaitError !process .Child .Term Params File Io/Threaded.zig: 15467
15467
15468
15469
15470
15471
15472
15473
15474
15475
15476
15477
15478
15479
15480
15481
15482
15483
15484
15485
15486
15487
15488
15489
15490
15491
15492
15493
15494 fn childWaitWindows (child : *process .Child ) process .Child .WaitError !process .Child .Term {
const handle = child .id .?;
const alertable_syscall : AlertableSyscall = try .start ();
while (true ) switch (windows .ntdll .NtWaitForSingleObject (handle , .TRUE , null )) {
windows .NTSTATUS .WAIT_0 => break alertable_syscall .finish (),
.USER_APC , .ALERTED , .TIMEOUT => {
try alertable_syscall .checkCancel ();
continue ;
},
else => |status | return alertable_syscall .unexpectedNtstatus (status ),
};
var info : windows .PROCESS .BASIC_INFORMATION = undefined ;
const term : process .Child .Term = switch (windows .ntdll .NtQueryInformationProcess (
handle ,
.BasicInformation ,
&info ,
@sizeOf (windows .PROCESS .BASIC_INFORMATION ),
null ,
)) {
.SUCCESS => .{ .exited = @as (u8 , @truncate (@backingInt (info .ExitStatus ))) },
else => .{ .unknown = 0 },
};
childCleanupWindows (child );
return term ;
}