|
@@ -92,7 +92,7 @@ class AsyncResult(ResultBase):
|
|
|
self.id = id
|
|
|
self.backend = backend or self.app.backend
|
|
|
self.parent = parent
|
|
|
- self.on_ready = promise(self._on_fulfilled)
|
|
|
+ self.on_ready = promise(self._on_fulfilled, weak=True)
|
|
|
self._cache = None
|
|
|
|
|
|
def then(self, callback, on_error=None, weak=False):
|
|
@@ -168,7 +168,7 @@ class AsyncResult(ResultBase):
|
|
|
assert_will_not_block()
|
|
|
_on_interval = promise()
|
|
|
if follow_parents and propagate and self.parent:
|
|
|
- on_interval = promise(self._maybe_reraise_parent_error)
|
|
|
+ on_interval = promise(self._maybe_reraise_parent_error, weak=True)
|
|
|
self._maybe_reraise_parent_error()
|
|
|
if on_interval:
|
|
|
_on_interval.then(on_interval)
|
|
@@ -461,7 +461,7 @@ class ResultSet(ResultBase):
|
|
|
self.on_ready = promise(args=(self,))
|
|
|
self._on_full = ready_barrier or barrier(results)
|
|
|
if self._on_full:
|
|
|
- self._on_full.then(promise(self.on_ready))
|
|
|
+ self._on_full.then(promise(self.on_ready, weak=True))
|
|
|
|
|
|
def add(self, result):
|
|
|
"""Add :class:`AsyncResult` as a new member of the set.
|
|
@@ -884,8 +884,8 @@ class EagerResult(AsyncResult):
|
|
|
self._result = ret_value
|
|
|
self._state = state
|
|
|
self._traceback = traceback
|
|
|
- self.on_ready = promise(args=(self,))
|
|
|
- self.on_ready()
|
|
|
+ self.on_ready = promise()
|
|
|
+ self.on_ready(self)
|
|
|
|
|
|
def then(self, callback, on_error=None, weak=False):
|
|
|
return self.on_ready.then(callback, on_error)
|