Mercurial > kallithea
diff rhodecode/controllers/feed.py @ 3772:910ad1ffee99 beta
invalidation: merge .invalidate and .set_valid as .test_and_set_valid
This simplifies the internal API and avoids leaking CacheInvalidation instances
and cache keys.
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Wed, 03 Apr 2013 15:56:12 +0200 |
parents | ec6354949623 |
children | 8e2cd46f765b |
line wrap: on
line diff
--- a/rhodecode/controllers/feed.py Sun Apr 21 06:10:08 2013 +0200 +++ b/rhodecode/controllers/feed.py Wed Apr 03 15:56:12 2013 +0200 @@ -141,10 +141,9 @@ return feed.writeString('utf-8') key = repo_name + '_ATOM' - inv = CacheInvalidation.invalidate(key) - if inv is not None: + valid = CacheInvalidation.test_and_set_valid(key) + if not valid: region_invalidate(_get_feed_from_cache, None, key) - CacheInvalidation.set_valid(inv.cache_key) return _get_feed_from_cache(key) def rss(self, repo_name): @@ -174,8 +173,7 @@ return feed.writeString('utf-8') key = repo_name + '_RSS' - inv = CacheInvalidation.invalidate(key) - if inv is not None: + valid = CacheInvalidation.test_and_set_valid(key) + if not valid: region_invalidate(_get_feed_from_cache, None, key) - CacheInvalidation.set_valid(inv.cache_key) return _get_feed_from_cache(key)