The comment isn't quite correct: the pipe also lets us detect signals *during* select (that's actually what the signal pipe idiom, with select, is most usually meant for); so between the call to IsPendingTermination() and the *return* from select().  As presently phrased, it's most naturally read as until just before we call select().