I don't know of any modern OSes without a poll() call. Even OS X has it.
When there are no pipes, we can just do normal blocking input.
Only go into the select if we need to deal with pipes.