Suspend until atLeast bytes become available or end of stream encountered (possibly due to exceptional close)
Discard at most n available bytes or 0 if no bytes available yet
Request buffer range atLeast bytes length
Number of bytes available for read. However it does not necessarily mean that all available bytes could be requested at once