aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2020-08-16 21:20:22 -0700
committerZac Medico <zmedico@gentoo.org>2020-08-16 21:23:49 -0700
commit4db210cf165f426f695ecf8307942a2610b352fc (patch)
tree5359716080fbd2a41378b4710f978a14a03d75ab
parentemerge: Add short -l option for --load-average (bug 699256) (diff)
downloadportage-4db210cf165f426f695ecf8307942a2610b352fc.tar.gz
portage-4db210cf165f426f695ecf8307942a2610b352fc.tar.bz2
portage-4db210cf165f426f695ecf8307942a2610b352fc.zip
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@gentoo.org>
-rw-r--r--lib/portage/util/futures/iter_completed.py5
1 files 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):