diff --git a/redox-rt/src/sys.rs b/redox-rt/src/sys.rs index 29f7ef3350..6e8b1d823a 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 { ) .map(|awoken| awoken as u32) } +pub fn sys_waitpid(pid: usize, status: &mut usize, flags: usize) -> Result { + 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 e6d415e0eb..e1b1351f35 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