| ... | ... | @@ -1428,7 +1428,7 @@ pub fn io(t: *Threaded) Io { |
| 1428 | 1428 | .tryLockStderr = tryLockStderr, |
| 1429 | 1429 | .unlockStderr = unlockStderr, |
| 1430 | 1430 | .processSetCurrentDir = processSetCurrentDir, |
| 1431 | | .processReplace = processReplace, // TODO audit for cancelation and unreachable |
| 1431 | .processReplace = processReplace, |
| 1432 | 1432 | .processReplacePath = processReplacePath, // TODO audit for cancelation and unreachable |
| 1433 | 1433 | .processSpawn = processSpawn, // TODO audit for cancelation and unreachable |
| 1434 | 1434 | .processSpawnPath = processSpawnPath, // TODO audit for cancelation and unreachable |
| ... | ... | @@ -12946,7 +12946,9 @@ fn spawnPosix(t: *Threaded, options: process.SpawnOptions) process.SpawnError!Sp |
| 12946 | 12946 | |
| 12947 | 12947 | const pid_result = try posix.fork(); |
| 12948 | 12948 | if (pid_result == 0) { |
| 12949 | | // we are the child |
| 12949 | // We are the child. |
| 12950 | if (Thread.current) |current_thread| current_thread.cancel_protection = .blocked; |
| 12951 | |
| 12950 | 12952 | setUpChildIo(options.stdin, stdin_pipe[0], posix.STDIN_FILENO, dev_null_fd) catch |err| forkBail(err_pipe[1], err); |
| 12951 | 12953 | setUpChildIo(options.stdout, stdout_pipe[1], posix.STDOUT_FILENO, dev_null_fd) catch |err| forkBail(err_pipe[1], err); |
| 12952 | 12954 | setUpChildIo(options.stderr, stderr_pipe[1], posix.STDERR_FILENO, dev_null_fd) catch |err| forkBail(err_pipe[1], err); |
| ... | ... | @@ -14585,8 +14587,8 @@ pub fn posixExecvPath( |
| 14585 | 14587 | child_argv: [*:null]const ?[*:0]const u8, |
| 14586 | 14588 | envp: [*:null]const ?[*:0]const u8, |
| 14587 | 14589 | ) process.ReplaceError { |
| 14590 | try Thread.checkCancel(); |
| 14588 | 14591 | switch (posix.errno(posix.system.execve(path, child_argv, envp))) { |
| 14589 | | .SUCCESS => unreachable, |
| 14590 | 14592 | .FAULT => |err| return errnoBug(err), // Bad pointer parameter. |
| 14591 | 14593 | .@"2BIG" => return error.SystemResources, |
| 14592 | 14594 | .MFILE => return error.ProcessFdQuotaExceeded, |