use addFd rather than addFdOneShot