void io_wantread(int64 fd);
io_wantread tells the next io_wait() that you want to read from this descriptor. Call io_dontwantread() again if you change your mind.
The next time you call io_wait(), it will look whether this descriptor becomes readable, too. You can then use io_canread() to check whether the descriptor has become readable.
You have to have called io_fd on the descriptor first (io_pipe and io_socketpair do this for you). Waiting on descriptors only works for sockets, fifos and pipes. It may also work on devices and TTYs, but that is platform dependent -- you should not rely on that.
io_wait(3), io_canread(3), io_wantread(3), io_fd(3)
io_dontwantread(3), io_fd(3), io_fd_canwrite(3), io_wait(3), io_waituntil(3).