diff --git a/redox-rt/src/sys.rs b/redox-rt/src/sys.rs index 29f7ef3350b14e610ddf5e9e53c07316b01ec2ac..6e8b1d823af6f2f68639ce18d75739bf50413880 100644 --- a/redox-rt/src/sys.rs +++ b/redox-rt/src/sys.rs @@ -76,3 +76,13 @@ pub unsafe fn sys_futex_wake(addr: *mut u32, num: u32) -> Result<u32> { ) .map(|awoken| awoken as u32) } +pub fn sys_waitpid(pid: usize, status: &mut usize, flags: usize) -> Result<usize> { + wrapper(|| { + syscall::waitpid( + pid, + status, + syscall::WaitFlags::from_bits(flags) + .expect("waitpid: invalid bit pattern"), + ) + }) +} diff --git a/src/platform/redox/mod.rs b/src/platform/redox/mod.rs index e6d415e0eb38719adb8881afcfd49d40ef162af0..e1b1351f35ae0d8e556373aa5aea7cc266d28fe0 100644 --- a/src/platform/redox/mod.rs +++ b/src/platform/redox/mod.rs @@ -1058,12 +1058,7 @@ impl Pal for Sys { let mut status = 0; let inner = |status: &mut usize, flags| { - syscall::waitpid( - pid as usize, - status, - syscall::WaitFlags::from_bits(flags as usize) - .expect("waitpid: invalid bit pattern"), - ) + redox_rt::sys::sys_waitpid(pid as usize, status, flags as usize) }; // First, allow ptrace to handle waitpid