예제 #1
0
def test_logger_thread():
    """ Test the logger thread.

    """
    logger = logging.getLogger('test')
    queue = Queue()
    handler = QueueHandler(queue)
    logger.addHandler(handler)
    logger.info('test')
    logger.removeHandler(handler)
    queue.put(None)

    model = PanelModel()
    handler = GuiHandler(model)
    logger.addHandler(handler)

    thread = QueueLoggerThread(queue)
    thread.start()
    thread.join(2)

    if thread.is_alive():
        raise

    qapp = QtApplication.instance()._qapp
    qapp.flush()
    qapp.processEvents()

    assert_equal(model.text, 'test\n')
예제 #2
0
파일: engine.py 프로젝트: zoulianmp/HQCMeas
    def prepare_to_run(self, name, root, monitored_entries, build_deps):

        runtime_deps = root.run_time

        # Get ConfigObj describing measure.
        root.update_preferences_from_members()
        config = root.task_preferences

        # Make infos tuple to send to the subprocess.
        self._temp = (name, config, build_deps, runtime_deps,
                      monitored_entries)

        # Clear all the flags.
        self._meas_pause.clear()
        self._meas_paused.clear()
        self._meas_stop.clear()
        self._stop.clear()
        self._force_stop.clear()
        self._stop_requested = False

        # If the process does not exist or is dead create a new one.
        if not self._process or not self._process.is_alive():
            self._pipe, process_pipe = Pipe()
            self._process = TaskProcess(process_pipe,
                                        self._log_queue,
                                        self._monitor_queue,
                                        self._meas_pause,
                                        self._meas_paused,
                                        self._meas_stop,
                                        self._stop)
            self._process.daemon = True

            self._log_thread = QueueLoggerThread(self._log_queue)
            self._log_thread.daemon = True

            self._monitor_thread = ThreadMeasureMonitor(self,
                                                        self._monitor_queue)
            self._monitor_thread.daemon = True

            self._pause_thread = None

        self.measure_status = ('PREPARED', 'Engine ready to process.')