Thinking about it some more, bailing if `O_NONBLOCK` isn't set is technically dangerous, because some other process could have unset it before we called `fcntl()`, and then could set it again afterwards.

O_NONBLOCK sucks. POSIX really should have just declared a `read_nonblock()` and `write_nonblock()`.

Granted, this particular case should never be hit in practice. So I guess I can live with this edge case.