summaryrefslogtreecommitdiff
path: root/dogpile
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2011-08-24 14:31:06 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2011-08-24 14:31:06 -0400
commitbea8a04edba2a144d8b8eaef2ecd6298b527cca8 (patch)
tree4c02f7392f7e9ac683743fa4a36143814134dbde /dogpile
parentb87ceb04101d9ed8d689ef90dcab36ee04cca53c (diff)
downloaddogpile-core-bea8a04edba2a144d8b8eaef2ecd6298b527cca8.tar.gz
some docstrings, setup, etc.
Diffstat (limited to 'dogpile')
-rw-r--r--dogpile/dogpile.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/dogpile/dogpile.py b/dogpile/dogpile.py
index e8ea99f..7e48869 100644
--- a/dogpile/dogpile.py
+++ b/dogpile/dogpile.py
@@ -76,12 +76,23 @@ from readwrite_lock import ReadWriteMutex
log = logging.getLogger(__name__)
class Dogpile(object):
+ """Dogpile class.
+
+ :param expiretime: Expiration time in seconds.
+
+ """
def __init__(self, expiretime):
self.dogpilelock = threading.Lock()
self.expiretime = expiretime
self.createdtime = -1
def acquire(self, creator):
+ """Acquire the lock, returning a context manager.
+
+ :param creator: Creation function, used if this thread
+ is chosen to create a new value.
+
+ """
dogpile = self
class Lock(object):
def __enter__(self):
@@ -92,11 +103,13 @@ class Dogpile(object):
@property
def is_expired(self):
+ """Return true if the expiration time is reached."""
return not self.has_value or \
time.time() - self.createdtime > self.expiretime
@property
def has_value(self):
+ """Return true if the creation function has proceeded at least once."""
return self.createdtime > 0
def _enter(self, creator):