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 :|


Reply via email to