This function will block until it is the turn of the given number to execute. It can be called multiple times until the turn is given up by calling GiveUpTurn. The number given must have been received from a call to GetANumber.