def get(self, score=False):
waiter = self.loop.create_future()
if self._queue:
timestamp, value = heapq.nsmallest(1, self._queue)[0]
if time.time() >= timestamp:
ts, value = heapq.heappop(self._queue)
if score:
waiter.set_result((value, ts))
else:
waiter.set_result(value)
return waiter
if not self._future or self._future.done():
self._future = self.loop.create_task(self._timer())
self._waiters.append((score, waiter))
return waiter
评论列表
文章目录