Non blocking is not async IO. It is not really possible to perform zero
copy IO with non blocking IO semantics, you must have full async IO to
issue multiple pending requests.
Brian Akins wrote:
Phillip Susi wrote:
As an alternative, you can bypass the cache and do direct async IO to
the disk with zero copies. IIRC, this is supported on linux with the
O_DIRECT flag. Doing this though, means that you will need to handle
caching yourself, which might not be such a good idea. Does Linux not
support O_DIRECT on sockets?
Can you not just set the socket to non-blocking using O_NONBLOCK?