We were getting bit if the process exited while we were doing an IO.select because it would then wait the full timeout.