qemu-e2k/python/qemu/machine
John Snow d911accf0a python/qmp: clear events on get_events() call
All callers in the tree *already* clear the events after a call to
get_events(). Do it automatically instead and update callsites to remove
the manual clear call.

These semantics are quite a bit easier to emulate with async QMP, and
nobody appears to be abusing some emergent properties of what happens if
you decide not to clear them, so let's dial down to the dumber, simpler
thing.

Specifically: callers of clear() right after a call to get_events() are
more likely expressing their desire to not see any events they just
retrieved, whereas callers of clear_events() not in relation to a recent
call to pull_event/get_events are likely expressing their desire to
simply drop *all* pending events straight onto the floor. In the sync
world, this is safe enough; in the async world it's nearly impossible to
promise that nothing happens between getting and clearing the
events.

Making the retrieval also clear the queue is vastly simpler.

Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Hanna Reitz <hreitz@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 20210923004938.3999963-9-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
2021-10-12 12:22:11 -04:00
..
README.rst python: add directory structure README.rst files 2021-06-01 16:21:21 -04:00
__init__.py python: Fix broken ReST docstrings 2021-06-30 21:57:08 -04:00
console_socket.py python: create qemu packages 2021-06-01 16:21:21 -04:00
machine.py python/qmp: clear events on get_events() call 2021-10-12 12:22:11 -04:00
py.typed python: expose typing information via PEP 561 2021-06-30 21:54:04 -04:00
qtest.py python: qemu: pass the wrapper field from QEMUQtestmachine to QEMUMachine 2021-09-01 12:57:31 +02:00

README.rst

qemu.machine package
====================

This package provides core utilities used for testing and debugging
QEMU. It is used by the iotests, vm tests, acceptance tests, and several
other utilities in the ./scripts directory. It is not a fully-fledged
SDK and it is subject to change at any time.

See the documentation in ``__init__.py`` for more information.