pub fn create_pipe() -> Result<(RawSource, RawSource)>
Create an OS pipe and return (read_fd, write_fd).
(read_fd, write_fd)
Both ends are set to O_NONBLOCK before returning.
O_NONBLOCK
Returns io::Error if pipe or set_nonblocking fails.
io::Error
pipe
set_nonblocking