summaryrefslogtreecommitdiffstats
path: root/combox/silo.py
diff options
context:
space:
mode:
authorSiddharth Ravikumar <sravik@bgsu.edu>2015-04-01 09:45:45 -0400
committerSiddharth Ravikumar <sravik@bgsu.edu>2015-04-01 09:45:45 -0400
commit277408c058283bf73fbe6355fc7db0f6dbcbc24b (patch)
tree8389d8fcf96f718639e384284cf43fd6d6da89cf /combox/silo.py
parentd3976cc51ad53a369f698d1141cf966ca414a904 (diff)
refactored the way locks work in combox.siloComboxSilo.
modified: combox/cbox.py modified: combox/events.py modified: combox/silo.py modified: tests/events_test.py modified: tests/silo_test.py
Diffstat (limited to 'combox/silo.py')
-rw-r--r--combox/silo.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/combox/silo.py b/combox/silo.py
index 55345c9..f391d2e 100644
--- a/combox/silo.py
+++ b/combox/silo.py
@@ -30,14 +30,14 @@ class ComboxSilo(object):
"""
- def __init__(self, config):
+ def __init__(self, config, lock):
"""config: a dictinary which contains combox configuration.
"""
self.config = config
- silo = path.join(config['silo_dir'], 'silo.db')
- self.db = pickledb.load(silo, True)
+ self.silo_path = path.join(config['silo_dir'], 'silo.db')
+ self.db = pickledb.load(self.silo_path, True)
## things we need for housekeep the node directory.
self.node_dicts = ['shard_created', 'shard_modified', 'shard_moved',
@@ -48,7 +48,13 @@ class ComboxSilo(object):
if not self.db.get(ndict):
self.db.dcreate(ndict)
- self.lock = Lock()
+ self.lock = lock
+
+
+ def reload(self):
+ """Re-loads the DB from disk."""
+ with self.lock:
+ self.db = pickledb.load(self.silo_path, True)
def update(self, filep):