io_wantwrite tells the next io_wait() that you want to write to this
descriptor. Call io_dontwantwrite() again if you change your mind.
The next time you call io_wait(), it will look whether this descriptor
becomes writeable, too. You can then use io_canwrite() to check whether
the descriptor has become writable.
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.