def value(self, timeout=None):
"""Get last value 'yield'ed / value of StopIteration of task.
NB: This method should _not_ be called from a task! This method is meant
for main thread in the user program to wait for (main) task(s) it
creates.
Once task stops (finishes) executing, the last value is returned.
"""
value = None
self._scheduler._lock.acquire()
if self._complete is None:
self._complete = threading.Event()
self._scheduler._lock.release()
if self._complete.wait(timeout=timeout) is True:
value = self._value
elif self._complete == 0:
self._scheduler._lock.release()
value = self._value
else:
self._scheduler._lock.release()
if self._complete.wait(timeout=timeout) is True:
value = self._value
return value
评论列表
文章目录