diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-08-24 15:48:26 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-08-24 15:48:26 -0400 |
commit | a285ce76e988e6cf14ab9b241188da34cbd4de80 (patch) | |
tree | 0a75d67b8cad18e2621692f87665e13f404409b1 | |
parent | c80135c7f76c8c2118025f22a478a292d66ee9b3 (diff) | |
download | dogpile-core-a285ce76e988e6cf14ab9b241188da34cbd4de80.tar.gz |
further cleanup
-rw-r--r-- | dogpile/dogpile.py | 10 | ||||
-rw-r--r-- | tests/test_dogpile.py | 12 |
2 files changed, 10 insertions, 12 deletions
diff --git a/dogpile/dogpile.py b/dogpile/dogpile.py index 65ae6e0..c3d4663 100644 --- a/dogpile/dogpile.py +++ b/dogpile/dogpile.py @@ -117,20 +117,16 @@ class Dogpile(object): if not self.is_expired: return - has_createlock = False if self.has_value: if not self.dogpilelock.acquire(False): log.debug("dogpile entering block while another thread does the create") return - log.debug("dogpile create lock acquired") - has_createlock = True - - if not has_createlock: + else: log.debug("no value, waiting for create lock") self.dogpilelock.acquire() - log.debug("waited for create lock") - try: + log.debug("value creation lock acquired") + # see if someone created the value already if not self.is_expired: return diff --git a/tests/test_dogpile.py b/tests/test_dogpile.py index b8565e0..ffad4d4 100644 --- a/tests/test_dogpile.py +++ b/tests/test_dogpile.py @@ -45,6 +45,9 @@ class DogpileTest(TestCase): if slow_write_time: with dogpile.acquire_write_lock(): saved = list(the_resource) + # clear out the resource dict so that + # usage threads hitting it will + # raise the_resource[:] = [] time.sleep(slow_write_time) the_resource[:] = saved @@ -70,11 +73,10 @@ class DogpileTest(TestCase): # establish "max stale" as, object expired + time # to create a new one + 10% max_stale = (expiretime + creation_time) * 1.1 - - assert time_since_create < max_stale - "Value is %f seconds old, expiretime %f, time to create %f" % ( - time_since_create, expiretime, creation_time - ) + assert time_since_create < max_stale, \ + "Value is %f seconds old, expiretime %f, time to create %f" % ( + time_since_create, expiretime, creation_time + ) log.debug("time since create %s max stale time %s" % ( time_since_create, max_stale |