[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 03/17] python/aqmp: Return cleared events from EventListener.c
From: |
John Snow |
Subject: |
[PATCH v2 03/17] python/aqmp: Return cleared events from EventListener.clear() |
Date: |
Wed, 22 Sep 2021 20:49:24 -0400 |
This serves two purposes:
(1) It is now possible to discern whether or not clear() removed any
event(s) from the queue with absolute certainty, and
(2) It is now very easy to get a List of all pending events in one
chunk, which is useful for the sync bridge.
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Hanna Reitz <hreitz@redhat.com>
---
python/qemu/aqmp/events.py | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/python/qemu/aqmp/events.py b/python/qemu/aqmp/events.py
index 271899f6b82..5f7150c78d4 100644
--- a/python/qemu/aqmp/events.py
+++ b/python/qemu/aqmp/events.py
@@ -562,7 +562,7 @@ def empty(self) -> bool:
"""
return self._queue.empty()
- def clear(self) -> None:
+ def clear(self) -> List[Message]:
"""
Clear this listener of all pending events.
@@ -570,17 +570,22 @@ def clear(self) -> None:
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
--
2.31.1
- [PATCH v2 00/17] Switch iotests to using Async QMP, John Snow, 2021/09/22
- [PATCH v2 02/17] python/aqmp: add .empty() method to EventListener, John Snow, 2021/09/22
- [PATCH v2 01/17] python/aqmp: add greeting property to QMPClient, John Snow, 2021/09/22
- [PATCH v2 03/17] python/aqmp: Return cleared events from EventListener.clear(),
John Snow <=
- [PATCH v2 04/17] python/aqmp: add send_fd_scm, John Snow, 2021/09/22
- [PATCH v2 05/17] python/aqmp: Add dict conversion method to Greeting object, John Snow, 2021/09/22
- [PATCH v2 06/17] python/aqmp: Reduce severity of EOFError-caused loop terminations, John Snow, 2021/09/22
- [PATCH v2 07/17] python/aqmp: Disable logging messages by default, John Snow, 2021/09/22
- [PATCH v2 08/17] python/qmp: clear events on get_events() call, John Snow, 2021/09/22
- [PATCH v2 09/17] python/qmp: add send_fd_scm directly to QEMUMonitorProtocol, John Snow, 2021/09/22
- [PATCH v2 10/17] python, iotests: remove socket_scm_helper, John Snow, 2021/09/22
- [PATCH v2 11/17] python/machine: remove has_quit argument, John Snow, 2021/09/22
- [PATCH v2 12/17] python/machine: Handle QMP errors on close more meticulously, John Snow, 2021/09/22
- [PATCH v2 13/17] iotests: Accommodate async QMP Exception classes, John Snow, 2021/09/22