Someone
public python v1 · immutable while self.running: self.update_event.clear() 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: 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)) timeout = 0 else : timeout = None if task: self.update_event.wait(timeout)