All pastes #775578 Raw Edit

Someone

public python v1 · immutable
·published 2007-11-15 17:27 UTC
rendered paste body
        while self.running:            self.update_event.clear()            timeout = None            task = None            with self.heap_lock:                if len(self.heap):                    runtime, delay, queue = self.heap[0]                    now = time()                    if now < runtime:                        timeout = runtime - now                    else:                        timeout = 0                        runtime, delay, queue = heappop(self.heap)                        try:                            task = queue.get_nowait()                        except Queue.Empty:                            pass                        else:                            queue.task_done()                            yield task                            heappush(self.heap, (time() + delay, delay, queue))            if task:                # TODO: тут ещё можно подкорректировать timeout                self.update_event.wait(timeout)