Call to `hid_read_timeout` sometimes never returns on Windows
shufps opened this issue · 1 comments
shufps commented
We have an application that works perfectly on Linux and Mac and most of the time for Windows.
But on Windows it happens that the call to read_timeout
never returns and the entire app is hanging because we are cleanly using mutexes to prevent parallel accessing the USB device.
We tracked our problem down to the call of hid_read_timeout
fn read_timeout(&self, buf: &mut [u8], timeout: i32) -> HidResult<usize> {
let res = unsafe {
ffi::hid_read_timeout(
self._hid_device,
buf.as_mut_ptr(),
buf.len() as size_t,
timeout,
)
};
self.check_size(res)
}
Timeout value is 10s but we can see in our logs that it's waiting forever there.
Has anyone heared about problem specific to Windows that the hid_read_timeout
call would hang forever even if a timeout value of 10000 is specified?
Thx a lot for help - we are a bit clueless at this point.
shufps commented
upsi ... timeout is 10mio and not 10k 😑
closing this issue