--------
Date: Wed, 17 Dec 2025 09:01:52 +0100
From: Marco Antoniotti <[email protected]>
Hi
I am reading from a uosocket:stream-usocket. My sequence is 100 octets
long, but I know the other party is sending UP TO 100 octets.
If the other party sends less than 100 octets, read-sequence/usocket-stream
(at least the version on LW) hangs.
Should I just do a loop, checking for the "end marker"?
Thanks
All the best
--
Marco Antoniotti
We found read-sequence to be unsatisfactory in that it always blocks
unless the device is non-blocking, so when we invented simple-streams
for Allegro CL, we added read-vector, which follows a B/NB (block for
one unit, then don't block) protocol. I know other lisps have copied
some aspects of simple-streams, and they may have an equivalent B/NB
read available. Perhaps flex-streams, or I know that cmucl had a
rudimentary simple-streams implementation.
Duane Rettig