On Wed, Sep 03, 2025 at 01:11:17AM -0400, John Snow wrote: > This method was deprecated in 3.12 because it ordinarily should not be > used from coroutines; if there is not a currently running event loop, > this automatically creates a new event loop - which is usually not what > you want from code that would ever run in the bottom half. > > In our case, we do want this behavior in two places: > > (1) The synchronous shim, for convenience: this allows fully sync > programs to use QEMUMonitorProtocol() without needing to set up an event > loop beforehand. This is intentional to fully box in the async > complexities into the legacy sync shim. > > (2) The qmp_tui shell; instead of relying on asyncio.run to create and > run an asyncio program, we need to be able to pass the current asyncio > loop to urwid setup functions. For convenience, again, we create one if > one is not present to simplify the creation of the TUI appliance. > > The remaining user of get_event_loop() was in fact one of the erroneous > users that should not have been using this function: if there's no > running event loop inside of a coroutine, you're in big trouble :) > > Signed-off-by: John Snow <[email protected]> > cherry picked from commit aa1ff9907603a3033296027e1bd021133df86ef1 > Signed-off-by: John Snow <[email protected]> > --- > python/qemu/qmp/legacy.py | 9 ++++++++- > python/qemu/qmp/qmp_tui.py | 7 ++++++- > python/tests/protocol.py | 2 +- > 3 files changed, 15 insertions(+), 3 deletions(-)
Reviewed-by: Daniel P. Berrangé <[email protected]> With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
