I think I've mentioned this before, but am reminded by recent hg
We define status for a SOCKET:SOCKET-SERVER or a
SOCKET:SOCKET-STREAM to be :ERROR if any i/o operation will cause
My first complaint is that I don't know how to interpret "any" above.
It could mean either quantifier "for all" or "there exists" in
<quantifier> operation op, op on stream will cause an error
However, I don't really believe that statement in either case.
For instance, as has been pointed out in other recent discussion, EOF
is an error.
Also, what exactly qualifies as an io operation?
Is socket-status an IO operation?
Can you give me an example where socket-status returns :error ?
One case that seems to qualify is if I close the stream and then
call socket-status on it - but this does not return :error either.
Instead I get an error from it.
My current best guess is that the value NIL is returned when either
the operation would block or it would cause an error (other than EOF).