Small refactor to feed_queue()

Put the event tuple into the results queue rather than yielding it from
the function.

Signed-off-by: Aanand Prasad <aanand.prasad@gmail.com>
This commit is contained in:
Aanand Prasad 2016-04-11 12:37:00 +01:00 committed by Daniel Nephin
parent 275b54641a
commit d03f4e4b32

View File

@ -87,8 +87,7 @@ def parallel_execute_stream(objects, func, get_deps):
state = State(objects) state = State(objects)
while not state.is_done(): while not state.is_done():
for event in feed_queue(objects, func, get_deps, results, state): feed_queue(objects, func, get_deps, results, state)
yield event
try: try:
event = results.get(timeout=0.1) event = results.get(timeout=0.1)
@ -126,7 +125,7 @@ def feed_queue(objects, func, get_deps, results, state):
if any(dep in state.failed for dep in deps): if any(dep in state.failed for dep in deps):
log.debug('{} has upstream errors - not processing'.format(obj)) log.debug('{} has upstream errors - not processing'.format(obj))
yield (obj, None, UpstreamError()) results.put((obj, None, UpstreamError()))
state.failed.add(obj) state.failed.add(obj)
elif all( elif all(
dep not in objects or dep in state.finished dep not in objects or dep in state.finished