Someone
public python v1 · immutable def tasks(self): self.running = True 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] if runtime > time(): timeout = runtime - time() else : timeout = 0 heappop(self.heap) try : task = queue.get_nowait() except Queue.Empty: pass # no pushback else : queue.task_done() heappush(self.heap, (time() + delay, delay, queue)) if task: yield task self.update_event.wait(timeout)