diff --git a/ebpfcat/serial.py b/ebpfcat/serial.py index 8ef0f0378a7f86acc5d62f1794e4831693d788cb..2044fd590cc76a1e32d9e2c779ad43164d107639 100644 --- a/ebpfcat/serial.py +++ b/ebpfcat/serial.py @@ -81,15 +81,14 @@ class Serial(Device): nonlocal remainder s = remainder size = len(remainder) - while not self.buffer.empty() or size == 0: - if size + len(s) > 22: - remainder = s[22-size:] - yield s[:22-size] + + while True: + remainder = s[22-size:] + yield s[:22-size] + size += len(s) + if (self.buffer.empty() and size > 0) or size > 22: return - else: - yield s - size += len(s) - s = await self.buffer.get() + s = await self.buffer.get() while True: ta = self.transmit_accept