From 85d85268292212a2bfbbf9213d488fa715353296 Mon Sep 17 00:00:00 2001 From: Will Greenberg Date: Fri, 15 Dec 2023 13:21:40 -0800 Subject: [PATCH] diag_device: handle 0 byte reads --- src/diag_device.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/diag_device.rs b/src/diag_device.rs index b697e96..9886abf 100644 --- a/src/diag_device.rs +++ b/src/diag_device.rs @@ -67,7 +67,15 @@ pub struct DiagDevice<'a> { impl<'a> DiagReader for DiagDevice<'a> { fn get_next_messages_container(&mut self) -> DiagResult { - let bytes_read = self.file.read(&mut self.read_buf).unwrap(); + 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,