--------
    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

Reply via email to