|  | @@ -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)
 |