Browse code

do not do the entire loop but only until "n"

Bas Nijholt authored on 22/04/2020 23:17:45
Showing 1 changed files
... ...
@@ -170,11 +170,10 @@ class BaseRunner(metaclass=abc.ABCMeta):
170 170
         return self.log is not None
171 171
 
172 172
     def _ask(self, n):
173
-        pids = [
174
-            pid
175
-            for pid in self._to_retry.keys()
176
-            if pid not in self._pending_points.values()
177
-        ][:n]
173
+        pending_ids = self._pending_points.values()
174
+        pids_gen = (pid for pid in self._to_retry.keys() if pid not in pending_ids)
175
+        pids = list(itertools.islice(pids_gen, n))
176
+
178 177
         loss_improvements = len(pids) * [float("inf")]
179 178
 
180 179
         if len(pids) < n: