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