On Tue, 2009-10-06 at 12:14 +0200, Marijn Haverbeke wrote:
Hi Stelian,
finish-output attempts to ensure that any buffered output sent to output-stream has reached its destination, and then returns.
force-output initiates the emptying of any internal buffers but does not wait for completion or acknowledgment to return.
I know. The situation that we want to avoid is CL-postgres calling read on a socket that has unflushed data -- then both the server and the client will wait forever. Thus, it is enough to call force-output, which ensures that the flushing is initiated, and the next read won't block forever.
Iolib socket streams don't flush the output buffer on reading. that would lead to major complications in order to be made safe