From 99f318f86e24ddeac7126ae800cc772a4033092d Mon Sep 17 00:00:00 2001 From: Dario Nieuwenhuis Date: Wed, 24 Mar 2021 02:58:51 +0100 Subject: [PATCH] Fix timeval in phy_wait for times greater than 1 second --- src/phy/sys/mod.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/phy/sys/mod.rs b/src/phy/sys/mod.rs index 59f59cf..0730d1b 100644 --- a/src/phy/sys/mod.rs +++ b/src/phy/sys/mod.rs @@ -47,7 +47,8 @@ pub fn wait(fd: RawFd, duration: Option) -> io::Result<()> { let mut timeout = libc::timeval { tv_sec: 0, tv_usec: 0 }; let timeout_ptr = if let Some(duration) = duration { - timeout.tv_usec = (duration.total_millis() * 1_000) as libc::suseconds_t; + timeout.tv_sec = duration.secs() as libc::time_t; + timeout.tv_usec = (duration.millis() * 1_000) as libc::suseconds_t; &mut timeout as *mut _ } else { ptr::null_mut()