commit:     4db210cf165f426f695ecf8307942a2610b352fc
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Mon Aug 17 04:20:22 2020 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Mon Aug 17 04:23:49 2020 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=4db210cf

async_iter_completed: check if loop is closed in finally clause

This avoids RuntimeError('Event loop is closed') errors triggered
by SIGINT.

Signed-off-by: Zac Medico <zmedico <AT> gentoo.org>

 lib/portage/util/futures/iter_completed.py | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/lib/portage/util/futures/iter_completed.py 
b/lib/portage/util/futures/iter_completed.py
index 9554b4338..3c1a58e7e 100644
--- a/lib/portage/util/futures/iter_completed.py
+++ b/lib/portage/util/futures/iter_completed.py
@@ -107,8 +107,9 @@ def async_iter_completed(futures, max_jobs=None, 
max_load=None, loop=None):
                        yield future_done_set
        finally:
                # cleanup in case of interruption by SIGINT, etc
-               scheduler.cancel()
-               scheduler.wait()
+               if not loop.is_closed():
+                       scheduler.cancel()
+                       scheduler.wait()
 
 
 def iter_gather(futures, max_jobs=None, max_load=None, loop=None):

Reply via email to