Iolib socket streams don't flush the output buffer on reading. that would lead to major complications in order to be made safe
Aren't they kind of going against the CL standard, then?
Not as fair as I know. I read the entire stream chapter when I wrote it and I remember no such requirement
The only thing I can find in the hyperspec is:
force-output initiates the emptying of any internal buffers but does not wait for completion or acknowledgment to return.
So I think your force-output should do at least *something* that, in the finite future, causes the buffers to be flushed. In case of emergency, you can just make force-output and finish-output equivalent.
(As in, I'm not too anxious to modify my code unless there's a good reason to do so. Going by the Hyperspec, I think using force-output like that should be correct.)