Skip to content

v0.7.2

Latest

Choose a tag to compare

@PBrunot PBrunot released this 16 May 07:46
· 1 commit to master since this release

Bug fix — realtime data never arriving

Root cause: read_timeout=1 causes Linux epoll to fire EPOLLIN after 1 second via the termios VTIME mechanism, even when no serial data is present. serialx's descriptor_transport treats the resulting empty os.read() as peer-closed (EOF) and permanently shuts the stream reader down. Historical packets flow without issue because they arrive with sub-second gaps; the 2–6 second pause between history completion and the first realtime packet is long enough to trigger the false EOF.

Fix: read_timeout=0 (non-blocking / VMIN=0 VTIME=0) — epoll only wakes on real data, so os.read() never returns b"" spuriously.