diff options
Diffstat (limited to 'python/qemu/aqmp/events.py')
-rw-r--r-- | python/qemu/aqmp/events.py | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/python/qemu/aqmp/events.py b/python/qemu/aqmp/events.py index fb81d21..5f7150c 100644 --- a/python/qemu/aqmp/events.py +++ b/python/qemu/aqmp/events.py @@ -556,7 +556,13 @@ class EventListener: """ return await self._queue.get() - def clear(self) -> None: + def empty(self) -> bool: + """ + Return `True` if there are no pending events. + """ + return self._queue.empty() + + def clear(self) -> List[Message]: """ Clear this listener of all pending events. @@ -564,17 +570,22 @@ class EventListener: pending FIFO queue synchronously. It can be also be used to manually clear any pending events, if desired. + :return: The cleared events, if any. + .. warning:: Take care when discarding events. Cleared events will be silently tossed on the floor. All events that were ever accepted by this listener are visible in `history()`. """ + events = [] while True: try: - self._queue.get_nowait() + events.append(self._queue.get_nowait()) except asyncio.QueueEmpty: break + return events + def __aiter__(self) -> AsyncIterator[Message]: return self |