(who: i32, vm: &VirtualMachine)
| 116 | |
| 117 | #[pyfunction] |
| 118 | fn getrusage(who: i32, vm: &VirtualMachine) -> PyResult<RUsageData> { |
| 119 | let res = unsafe { |
| 120 | let mut rusage = mem::MaybeUninit::<libc::rusage>::uninit(); |
| 121 | if libc::getrusage(who, rusage.as_mut_ptr()) == -1 { |
| 122 | Err(io::Error::last_os_error()) |
| 123 | } else { |
| 124 | Ok(rusage.assume_init()) |
| 125 | } |
| 126 | }; |
| 127 | res.map(RUsageData::from).map_err(|e| { |
| 128 | if e.kind() == io::ErrorKind::InvalidInput { |
| 129 | vm.new_value_error("invalid who parameter") |
| 130 | } else { |
| 131 | e.to_pyexception(vm) |
| 132 | } |
| 133 | }) |
| 134 | } |
| 135 | |
| 136 | struct Limits(libc::rlimit); |
| 137 | impl<'a> TryFromBorrowedObject<'a> for Limits { |
no test coverage detected