mirror of
https://git.anonymousland.org/anonymousland/synapse-product.git
synced 2025-05-04 05:24:48 -04:00
Make @cached cache deferreds rather than the deferreds' values
This commit is contained in:
parent
39e21ea51c
commit
7eea3e356f
3 changed files with 22 additions and 19 deletions
|
@ -51,7 +51,7 @@ class ObservableDeferred(object):
|
|||
object.__setattr__(self, "_observers", set())
|
||||
|
||||
def callback(r):
|
||||
self._result = (True, r)
|
||||
object.__setattr__(self, "_result", (True, r))
|
||||
while self._observers:
|
||||
try:
|
||||
self._observers.pop().callback(r)
|
||||
|
@ -60,7 +60,7 @@ class ObservableDeferred(object):
|
|||
return r
|
||||
|
||||
def errback(f):
|
||||
self._result = (False, f)
|
||||
object.__setattr__(self, "_result", (False, f))
|
||||
while self._observers:
|
||||
try:
|
||||
self._observers.pop().errback(f)
|
||||
|
@ -97,3 +97,8 @@ class ObservableDeferred(object):
|
|||
|
||||
def __setattr__(self, name, value):
|
||||
setattr(self._deferred, name, value)
|
||||
|
||||
def __repr__(self):
|
||||
return "<ObservableDeferred object at %s, result=%r, _deferred=%r>" % (
|
||||
id(self), self._result, self._deferred,
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue