int flags = fcntl(impl_.fd, F_GETFL);
flags = is_blocking ? (flags & ~O_NONBLOCK) : (flags | O_NONBLOCK);
fcntl(impl_.fd, F_SETFL, flags);
int flags = fcntl(impl_.fd, F_GETFL);
flags = is_blocking ? (flags & ~O_NONBLOCK) : (flags | O_NONBLOCK);
fcntl(impl_.fd, F_SETFL, flags);