def METHOD_NAME(self):
    self._start_t = time.time()
    self.setup()
    self.total_time = IncrementalTimer()
    self.own_time = IncrementalTimer()
    while True:
        self.total_time.tick()
        item = self.input_queue.get()
        if self._check_output(item):
            break
        self.own_time.tick()
        output = self.process(item)
        self.own_time.tock()
        if self._check_output(output):
            break
        self.total_time.tock()
        self.input_queue.task_done()
        self.output_queue.put(output)
    self.input_queue.close()
    self.end()
    self.working = False