On Wed, Sep 03, 2025 at 01:11:18AM -0400, John Snow wrote:
> This commit is two backports squashed into one to avoid regressions.
> 
> python: *really* remove get_event_loop
> 
> A prior commit, aa1ff990, switched away from using get_event_loop *by
> default*, but this is not good enough to avoid deprecation warnings as
> `asyncio.get_event_loop_policy().get_event_loop()` is *also*
> deprecated. Replace this mechanism with explicit calls to
> asyncio.get_new_loop() and revise the cleanup mechanisms in __del__ to
> match.
> 
> python: avoid creating additional event loops per thread
> 
> "Too hasty by far!", commit 21ce2ee4 attempted to avoid deprecated
> behavior altogether by calling new_event_loop() directly if there was no
> loop currently running, but this has the unfortunate side effect of
> potentially creating multiple event loops per thread if tests
> instantiate multiple QMP connections in a single thread. This behavior
> is apparently not well-defined and causes problems in some, but not all,
> combinations of Python interpreter version and platform environment.
> 
> Partially revert to Daniel Berrange's original patch, which calls
> get_event_loop and simply suppresses the deprecation warning in
> Python<=3.13. This time, however, additionally register new loops
> created with new_event_loop() so that future calls to get_event_loop()
> will return the loop already created.
> 
> Reported-by: Richard W.M. Jones <[email protected]>
> Reported-by: Daniel P. Berrangé <[email protected]>
> Signed-off-by: John Snow <[email protected]>
> cherry picked from commit 21ce2ee4f2df87efe84a27b9c5112487f4670622
> cherry picked from commit c08fb82b38212956ccffc03fc6d015c3979f42fe
> Signed-off-by: John Snow <[email protected]>
> ---
>  python/qemu/qmp/legacy.py  | 46 +++++++++++++++++++++++---------------
>  python/qemu/qmp/qmp_tui.py | 10 ++-------
>  python/qemu/qmp/util.py    | 27 ++++++++++++++++++++++
>  3 files changed, 57 insertions(+), 26 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