aboutsummaryrefslogtreecommitdiff
path: root/python/qemu/aqmp/events.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/qemu/aqmp/events.py')
-rw-r--r--python/qemu/aqmp/events.py15
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