But EPOLLRDHUP really should not imply EV_WRITE.  If you have an event that's checking for read, write, and EOF, you should only get WRITE on error or on write.