recv returns false if first message frame gives EINTR
handle either completion or returning false on EINTR depending on frame
treat EINTR as timeout during poll