Async read

Adding asynchronous read support for when non-blocking I/O is a necessity (web applications come to mind).