This repository was archived by the owner on Dec 5, 2024. It is now read-only.
Cancelling invalidation of cache #923
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Under normal operation a user interface interaction will query the cache for data. If the data in the cache is out of date, the cache will be invalidated. after which the
RepositoryManager
andUser
objects respectively start the appropriate task(s) to refresh and update the cache. To prevent multiple calls to refresh and update the cache, a flagisInvalidating
, is set. When the cache is refreshed, the user interface will receive an event indicating as much and will reload the display from the cache.It is possible that an error occurs after the cache is invalidated and the process to refresh and update the cache fails. In that case a user will be "stuck", be cause the
isInvalidating
flag is never set to false. And further queries of the cache will not spur the actions to refresh it.This pull request adds error handlers to the tasks initiated by
RepositoryManager
andUser
in order to "cancel" the invalidation process by setting theisInvalidating
flag to false. Allowing further user interface actions to attempt to reload the data.Depends on:
master