only read() if FD_ISSET()