aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorcodic12 <48339289+codic12@users.noreply.github.com>2021-05-04 09:21:23 -0700
committerVeikka Tuominen <git@vexu.eu>2021-06-11 20:43:14 +0300
commitd8b133d7339605d3cda75459bf986472a72f5bd3 (patch)
tree848911e84f7c532722d20779160d6cf00d8bfabc /lib
parentba7bfe949e7d3778fc4ca72ac73df60f4124b4da (diff)
downloadzig-d8b133d7339605d3cda75459bf986472a72f5bd3.tar.gz
zig-d8b133d7339605d3cda75459bf986472a72f5bd3.zip
c.zig: fix waitpid() definition
Diffstat (limited to 'lib')
-rw-r--r--lib/std/c.zig2
-rw-r--r--lib/std/os.zig4
2 files changed, 3 insertions, 3 deletions
diff --git a/lib/std/c.zig b/lib/std/c.zig
index 183be6108f..f0e53d8747 100644
--- a/lib/std/c.zig
+++ b/lib/std/c.zig
@@ -103,7 +103,7 @@ pub extern "c" fn linkat(oldfd: fd_t, oldpath: [*:0]const u8, newfd: fd_t, newpa
pub extern "c" fn unlink(path: [*:0]const u8) c_int;
pub extern "c" fn unlinkat(dirfd: fd_t, path: [*:0]const u8, flags: c_uint) c_int;
pub extern "c" fn getcwd(buf: [*]u8, size: usize) ?[*]u8;
-pub extern "c" fn waitpid(pid: c_int, stat_loc: *c_uint, options: c_uint) c_int;
+pub extern "c" fn waitpid(pid: pid_t, stat_loc: ?*c_int, options: c_int) pid_t;
pub extern "c" fn fork() c_int;
pub extern "c" fn access(path: [*:0]const u8, mode: c_uint) c_int;
pub extern "c" fn faccessat(dirfd: fd_t, path: [*:0]const u8, mode: c_uint, flags: c_uint) c_int;
diff --git a/lib/std/os.zig b/lib/std/os.zig
index 4c2fa9f9d0..072771b000 100644
--- a/lib/std/os.zig
+++ b/lib/std/os.zig
@@ -3435,10 +3435,10 @@ pub const WaitPidResult = struct {
};
pub fn waitpid(pid: pid_t, flags: u32) WaitPidResult {
- const Status = if (builtin.link_libc) c_uint else u32;
+ const Status = if (builtin.link_libc) c_int else u32;
var status: Status = undefined;
while (true) {
- const rc = system.waitpid(pid, &status, flags);
+ const rc = system.waitpid(pid, &status, if (builtin.link_libc) @intCast(c_int, flags) else flags);
switch (errno(rc)) {
0 => return .{
.pid = @intCast(pid_t, rc),