def clean_quit(self, upgrading=False): log("clean_quit(%s)", upgrading) self._upgrading = upgrading self._closing = True #ensure the reaper doesn't call us again: if self.child_reaper: def noop(): pass self.reaper_exit = noop log("clean_quit: reaper_exit=%s", self.reaper_exit) self.cleanup() def quit_timer(*args): log.debug("quit_timer()") stop_worker(True) self.quit(upgrading) #if from a signal, just force quit: stop_worker() #not from signal: use force stop worker after delay self.timeout_add(250, stop_worker, True) self.timeout_add(500, quit_timer) def force_quit(*args): log.debug("force_quit()") from xpra import os_util os_util.force_quit() self.timeout_add(5000, force_quit) log("clean_quit(..) quit timers scheduled") dump_all_frames()
def clean_quit(self, upgrading=False): log("clean_quit(%s)", upgrading) # ensure the reaper doesn't call us again: if self.child_reaper: def noop(): pass self.reaper_exit = noop log("clean_quit: reaper_exit=%s", self.reaper_exit) self.cleanup() def quit_timer(*args): log.debug("quit_timer()") self.quit(upgrading) # if from a signal, just force quit: stop_worker() # not from signal: use force stop worker after delay self.timeout_add(250, stop_worker, True) self.timeout_add(500, quit_timer) def force_quit(*args): log.debug("force_quit()") from xpra import os_util os_util.force_quit() self.timeout_add(5000, force_quit) log("clean_quit(..) quit timers scheduled")
def clean_quit(self, from_signal=False, upgrading=False): self.cleanup() def quit_timer(*args): log.debug("quit_timer()") self.quit(upgrading) #if from a signal, just force quit: stop_worker(from_signal) self.timeout_add(500, quit_timer) def force_quit(*args): log.debug("force_quit()") os._exit(1) self.timeout_add(5000, force_quit)
def clean_quit(self, from_signal=False, upgrading=False): self.cleanup() def quit_timer(*args): log.debug("quit_timer()") self.quit(upgrading) #if from a signal, just force quit: stop_worker(from_signal) if not from_signal: #not from signal: use force stop worker after delay self.timeout_add(250, stop_worker, True) self.timeout_add(500, quit_timer) def force_quit(*args): log.debug("force_quit()") os._exit(1) self.timeout_add(5000, force_quit)
def test_run(self): assert get_worker(False) is None w = get_worker() assert repr(w) def error_item(): raise Exception("work item test error") add_work_item(error_item) def slow_item(): time.sleep(1) #trigger the warning with more than 10 items: for _ in range(11): w.add(slow_item) stop_worker() stop_worker(True) #no-op: stop_worker(True) #let the worker print its messages: time.sleep(1)
def test_run(self): assert get_worker(False) is None w = get_worker() assert repr(w) def error_item(): raise Exception("work item test error") with silence_error(background_worker): add_work_item(error_item) time.sleep(0.1) #add the same item twice, with "no-duplicates" #(should only get added once) ndc = [] def nodupe(): ndc.append(True) w.add(nodupe, False) w.add(nodupe, False) time.sleep(1) with LoggerSilencer(background_worker, ("warn", "info")): #trigger the warning with more than 10 items: def slow_item(): time.sleep(1) for _ in range(12): w.add(slow_item) stop_worker() stop_worker(True) #no-op: stop_worker(True) #let the worker print its messages: time.sleep(1) assert len( ndc) == 1, "nodupe item should have been run once only, got %i" % ( len(ndc), )
def quit_timer(*args): log.debug("quit_timer()") stop_worker(True) self.quit(upgrading)