Example #1
0
    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()
Example #2
0
    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")
Example #3
0
 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)
Example #4
0
 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)
Example #5
0
 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)
Example #6
0
 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)
Example #7
0
    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)
Example #8
0
    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), )
Example #9
0
 def quit_timer(*args):
     log.debug("quit_timer()")
     stop_worker(True)
     self.quit(upgrading)
Example #10
0
 def quit_timer(*args):
     log.debug("quit_timer()")
     stop_worker(True)
     self.quit(upgrading)