python: backport 'kick event queue on legacy event_pull()'

This corrects an oversight in qmp-shell operation where new events will
not accumulate in the event queue when pressing "enter" with an empty
command buffer, so no new events show up.

Reported-by: Jag Raman <jag.raman@oracle.com>
Signed-off-by: John Snow <jsnow@redhat.com>
cherry picked from commit python-qemu-qmp@0443582d16cf9efd52b2c41a7b5be7af42c856cd
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
John Snow 2022-05-03 14:07:10 -04:00
parent cb0e438040
commit 1e343714bf

View file

@ -231,6 +231,9 @@ class QEMUMonitorProtocol:
:return: The first available QMP event, or None.
"""
# Kick the event loop to allow events to accumulate
self._sync(asyncio.sleep(0))
if not wait:
# wait is False/0: "do not wait, do not except."
if self._qmp.events.empty():