def trigger_next_call_if_exists(self): uthread.sleep(self.wait_seconds) if self.next_call is not None: self.next_call(*self.next_call_args, **self.next_call_kwargs) self.next_call = None self.next_call_args = None self.next_call_kwargs = None
def _update_remaining_time_tasklet(self): while not self.destroyed and self.update_remaining_time(): uthread2.sleep(TIME_REMAINING_UPDATE_SLEEP_TIME_SECONDS)
def _show_expiration_timer_thread(self, sleep_time): uthread2.sleep(sleep_time / SEC) self.Show()
def _poll_spy(spyfolder, delay): while True: spyfolder.waitables.Wait(0) uthread.sleep(delay)
def _update_challenges(self): while len(self.challenges_for_update): challenge_id, new_challenge_or_progress, update_function = self.challenges_for_update.pop( 0) update_function(challenge_id, new_challenge_or_progress) uthread2.sleep(CHALLENGE_UPDATE_SLEEP_SECONDS)