From: "Daniel P. Berrangé" <berrange@redhat.com>
To: John Snow <jsnow@redhat.com>
Cc: qemu-devel@nongnu.org, qemu-block@nongnu.org,
Cleber Rosa <crosa@redhat.com>, Hanna Reitz <hreitz@redhat.com>,
Kevin Wolf <kwolf@redhat.com>
Subject: Re: [PATCH v2 11/18] python: backport 'Remove deprecated get_event_loop calls'
Date: Mon, 8 Sep 2025 17:52:25 +0100 [thread overview]
Message-ID: <aL8JyfCHSXJbNIGV@redhat.com> (raw)
In-Reply-To: <20250903051125.3020805-12-jsnow@redhat.com>
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 <jsnow@redhat.com>
> cherry picked from commit aa1ff9907603a3033296027e1bd021133df86ef1
> Signed-off-by: John Snow <jsnow@redhat.com>
> ---
> 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é <berrange@redhat.com>
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 :|
next prev parent reply other threads:[~2025-09-08 16:53 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-03 5:11 [PATCH v2 00/18] python: 3.14 compatibility and python-qemu-qmp synchronization John Snow
2025-09-03 5:11 ` [PATCH v2 01/18] python: backport 'Change error classes to have better repr methods' John Snow
2025-09-08 16:23 ` Daniel P. Berrangé
2025-09-08 17:16 ` John Snow
2025-09-03 5:11 ` [PATCH v2 02/18] python: backport 'EventListener: add __repr__ method' John Snow
2025-09-08 16:24 ` Daniel P. Berrangé
2025-09-03 5:11 ` [PATCH v2 03/18] python: backport 'kick event queue on legacy event_pull()' John Snow
2025-09-08 16:24 ` Daniel P. Berrangé
2025-09-03 5:11 ` [PATCH v2 04/18] python: backport 'protocol: adjust logging name when changing client name' John Snow
2025-09-08 16:25 ` Daniel P. Berrangé
2025-09-03 5:11 ` [PATCH v2 05/18] python: backport 'drop Python3.6 workarounds' John Snow
2025-09-08 16:28 ` Daniel P. Berrangé
2025-09-03 5:11 ` [PATCH v2 06/18] python: backport 'qmp-shell: add common_parser()' John Snow
2025-09-08 16:47 ` Daniel P. Berrangé
2025-09-08 17:39 ` John Snow
2025-09-08 18:16 ` Daniel P. Berrangé
2025-09-03 5:11 ` [PATCH v2 07/18] python: backport 'feat: allow setting read buffer limit' John Snow
2025-09-08 16:49 ` Daniel P. Berrangé
2025-09-03 5:11 ` [PATCH v2 08/18] python: backport 'make require() preserve async-ness' John Snow
2025-09-08 16:50 ` Daniel P. Berrangé
2025-09-03 5:11 ` [PATCH v2 09/18] python: backport 'qmp-shell-wrap: handle missing binary gracefully' John Snow
2025-09-08 16:50 ` Daniel P. Berrangé
2025-09-03 5:11 ` [PATCH v2 10/18] python: backport 'qmp-tui: Do not crash if optional dependencies are not met' John Snow
2025-09-08 16:51 ` Daniel P. Berrangé
2025-09-03 5:11 ` [PATCH v2 11/18] python: backport 'Remove deprecated get_event_loop calls' John Snow
2025-09-08 16:52 ` Daniel P. Berrangé [this message]
2025-09-03 5:11 ` [PATCH v2 12/18] python: backport 'avoid creating additional event loops per thread' John Snow
2025-09-08 16:52 ` Daniel P. Berrangé
2025-09-03 5:11 ` [PATCH v2 13/18] python: synchronize qemu.qmp documentation John Snow
2025-09-08 16:53 ` Daniel P. Berrangé
2025-09-03 5:11 ` [PATCH v2 14/18] iotests: drop compat for old version context manager John Snow
2025-09-03 5:11 ` [PATCH v2 15/18] python: ensure QEMUQtestProtocol closes its socket John Snow
2025-09-03 5:11 ` [PATCH v2 16/18] iotests/147: ensure temporary sockets are closed before exiting John Snow
2025-09-03 5:11 ` [PATCH v2 17/18] iotests/151: ensure subprocesses are cleaned up John Snow
2025-09-03 5:11 ` [PATCH v2 18/18] iotests/check: always enable all python warnings John Snow
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aL8JyfCHSXJbNIGV@redhat.com \
--to=berrange@redhat.com \
--cc=crosa@redhat.com \
--cc=hreitz@redhat.com \
--cc=jsnow@redhat.com \
--cc=kwolf@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.