diff --git a/src/diag_device.rs b/src/diag_device.rs index ad861ce..ff42b8f 100644 --- a/src/diag_device.rs +++ b/src/diag_device.rs @@ -66,7 +66,15 @@ pub struct DiagDevice { impl DiagReader for DiagDevice { fn get_next_messages_container(&mut self) -> DiagResult { - let bytes_read = self.file.read(&mut self.read_buf)?; + let mut bytes_read; + loop { + bytes_read = self.file.read(&mut self.read_buf)?; + if bytes_read == 0 { + println!("read 0 bytes from /dev/diag, retrying..."); + } else { + break; + } + } if let Some(debug_file) = self.debug_file.as_mut() { let debug_block = DebugFileBlock { size: bytes_read as u32,