diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/sys/wait.rs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/sys/wait.rs b/src/sys/wait.rs index c49765fd..e2273d2f 100644 --- a/src/sys/wait.rs +++ b/src/sys/wait.rs @@ -21,12 +21,17 @@ pub enum WaitStatus { StillAlive } -pub fn waitpid(pid: pid_t, options: WaitPidFlag) -> SysResult<WaitStatus> { +pub fn waitpid(pid: pid_t, options: Option<WaitPidFlag>) -> SysResult<WaitStatus> { use self::WaitStatus::*; let mut status: i32 = 0; - let res = unsafe { ffi::waitpid(pid as pid_t, &mut status as *mut c_int, options.bits()) }; + let option_bits = match options { + Some(bits) => bits.bits(), + None => 0 + }; + + let res = unsafe { ffi::waitpid(pid as pid_t, &mut status as *mut c_int, option_bits) }; if res < 0 { Err(SysError::last()) |