def finish(self, timeout=None):
"""Get last value 'yield'ed / value of StopIteration of task. Must be
used in a task with 'yield' as 'value = yield other_task.finish()'
Once task stops (finishes) executing, the last value is returned.
"""
value = None
if self._complete is None:
self._complete = Event()
if (yield self._complete.wait(timeout=timeout)) is True:
value = self._value
elif self._complete == 0:
value = self._value
elif isinstance(self._complete, Event):
if (yield self._complete.wait(timeout=timeout)) is True:
value = self._value
else:
raise RuntimeError('invalid wait on %s/%s: %s' %
(self._name, self._id, type(self._complete)))
raise StopIteration(value)
评论列表
文章目录