Skip to content
Snippets Groups Projects
Commit 62126c99 authored by Erik Johnston's avatar Erik Johnston
Browse files

Propogate stale cache errors to calling functions

parent 63b1eaf3
No related branches found
No related tags found
No related merge requests found
...@@ -183,8 +183,8 @@ class CacheDescriptor(object): ...@@ -183,8 +183,8 @@ class CacheDescriptor(object):
try: try:
cached_result_d = cache.get(*keyargs) cached_result_d = cache.get(*keyargs)
observed = cached_result_d.observe()
if DEBUG_CACHES: if DEBUG_CACHES:
@defer.inlineCallbacks @defer.inlineCallbacks
def check_result(cached_result): def check_result(cached_result):
actual_result = yield self.function_to_call(obj, *args, **kwargs) actual_result = yield self.function_to_call(obj, *args, **kwargs)
...@@ -195,9 +195,10 @@ class CacheDescriptor(object): ...@@ -195,9 +195,10 @@ class CacheDescriptor(object):
cached_result, actual_result, cached_result, actual_result,
) )
raise ValueError("Stale cache entry") raise ValueError("Stale cache entry")
cached_result_d.observe().addCallback(check_result) defer.returnValue(cached_result)
observed.addCallback(check_result)
return cached_result_d.observe() return observed
except KeyError: except KeyError:
# Get the sequence number of the cache before reading from the # Get the sequence number of the cache before reading from the
# database so that we can tell if the cache is invalidated # database so that we can tell if the cache is invalidated
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment