There is no change in functionality here.. we simply check first rather than after the poll delay. If/when that first check fails, we wait 0.5 seconds and check again. I can't see any reason why you would want to introduce a forced delay here. Just let the first check fail and incur the 0.5 seconds before the second check. Otherwise you're forcing every wait to be at least half a second, which they might very well take less time to return.