> Which part of "For other sockets, readability means that queued data is
> available for reading such that a call to recv, WSARecv, WSARecvFrom, or
> recvfrom is _guaranteed not to block_." do you not understand?

It means a hypothetical concurrent call, not a future actual call.

There is simply no way the implementation can assure that data will be
available in the future, and in practice, it does not.

Imagine if there was a call that waited until the size of a file was at
least X bytes. It might be reasonable to say that the function returns when
a call to 'stat' is guaranteed to return a size larger than X for the file.
This doesn't mean that a *subsequent* call to 'stat' will find the size to
be larger than X. It means that at the moment the decision was made to
return, a 'stat' call would have returned a size larger than 'X'.

Note that actual real-world applications have broken due to this
misunderstanding. I agree that your intepretation of the documentation is
quite natural; however, it is erroneous.

Like every other status-reporting function, Select reports on the status at
some hypothetical point between when you called it and when it returns. It
cannot guarantee what will happen in the future.

DS


______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to