Tags: vendion/elvish
Tags
Fix AsyncReader for go 1.9. With the introduction of the builtin poller, the standard library manages nonblockingness of fds itself. As a result, a Read on a nonblocking fd can still block (presumably, since the builtin poller when make fds nonblocking on its own, it will emulate blocking IO even if the fd itself is nonblocking). The solution is to simply use the read syscall to read from a nonblocking fd, thus avoiding the blocking IO emulation behavior of the standard library.
Fix AsyncReader for go 1.9. With the introduction of the builtin poller, the standard library manages nonblockingness of fds itself. As a result, a Read on a nonblocking fd can still block (presumably, since the builtin poller when make fds nonblocking on its own, it will emulate blocking IO even if the fd itself is nonblocking). The solution is to simply use the read syscall to read from a nonblocking fd, thus avoiding the blocking IO emulation behavior of the standard library.
PreviousNext