diff options
author | syn <isaqtm@gmail.com> | 2020-02-07 18:09:54 +0300 |
---|---|---|
committer | syn <isaqtm@gmail.com> | 2020-02-07 18:09:54 +0300 |
commit | deb6e1bd6f531f089b154a2fdc8af49d157aebc9 (patch) | |
tree | 9dee389e4e815298da1e6cb652f368d54984caba | |
parent | ad8ef8485414bfdb83faf50de045e43bc39c9b16 (diff) | |
download | evr-deb6e1bd6f531f089b154a2fdc8af49d157aebc9.tar.gz |
Make Pid directly
Constructing Pid instead of i32 looks prettier
-rw-r--r-- | src/backends/clang.rs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/backends/clang.rs b/src/backends/clang.rs index 5f67cb7..fa12fd1 100644 --- a/src/backends/clang.rs +++ b/src/backends/clang.rs @@ -5,6 +5,7 @@ use std::io::{ Result, Error, ErrorKind }; use std::process::{ Command }; use std::collections::hash_map::DefaultHasher; use std::hash::{ Hash, Hasher }; +use nix::{ sys::wait, unistd::Pid }; #[derive(Debug, Serialize, Deserialize, Default)] @@ -82,21 +83,20 @@ impl Backend for ClangBackend { } } -use nix::sys::wait; #[cfg(unix)] fn get_status(proc: std::process::Child) -> Result<RunStatus> { - let id = proc.id() as i32; // for fuck sake, why this emits u32? + let pid = Pid::from_raw(proc.id() as i32); loop { - let status_result = wait::waitpid(Some(nix::unistd::Pid::from_raw(id)), None) + let status_result = wait::waitpid(Some(pid), None) .map_err(|err| Error::new(ErrorKind::Other, err)); let status = status_result?; match status { - wait::WaitStatus::Exited(pid, code) => { - assert_eq!(pid.as_raw(), id); + wait::WaitStatus::Exited(ret_pid, code) => { + assert_eq!(ret_pid, pid); if code == 0 { return Ok(RunStatus::Success); @@ -104,8 +104,8 @@ fn get_status(proc: std::process::Child) -> Result<RunStatus> { return Ok(RunStatus::ErrorCode(code)); } }, - wait::WaitStatus::Signaled(pid, sig, coredump) => { - assert_eq!(pid.as_raw(), id); + wait::WaitStatus::Signaled(ret_pid, sig, coredump) => { + assert_eq!(ret_pid, pid); return Ok(RunStatus::Signal(sig, coredump)); } |