You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
To correctly fix this issue, these commands need to expose the actual number of bytes read (and written?)
I suppose as of yet, no other scope is so broken that it's a big problem, but I think that for API stability and correctness sake, any network IO function should be prepared to handle incomplete data and report the number of bytes transferred.
The text was updated successfully, but these errors were encountered:
All of the other transports use Socket::ReadLooped/WriteLooped(), which call read(2) and write(2) in a loop until exactly the requested number of bytes have been sent.
So while they can hang, they can never return partial data. Except in the case of a socket timeout, which we probably should handle.
On my Rigol scope, when using the LXI transport, the scope sometimes sends less data than requested, which leads to stale data from another channel in a temp buffer being rendered, see https://github.com/azonenberg/scopehal-apps/issues/146#issuecomment-663620558
To correctly fix this issue, these commands need to expose the actual number of bytes read (and written?)
I suppose as of yet, no other scope is so broken that it's a big problem, but I think that for API stability and correctness sake, any network IO function should be prepared to handle incomplete data and report the number of bytes transferred.
The text was updated successfully, but these errors were encountered: