1
# gozerbot/lockmanager.py
7
__copyright__ = 'this file is in the public domain'
9
from gozerbot.generic import rlog
12
class Lockmanager(object):
14
""" place to hold locks """
19
def allocate(self, name):
20
""" allocate a new lock """
22
self.locks[name] = thread.allocate_lock()
23
rlog(10, 'lockmanager', 'allocated %s' % name)
28
if not self.locks.has_key(name):
30
return self.locks[name]
32
def delete(self, name):
34
if self.locks.has_key(name):
37
def acquire(self, name):
40
if not self.locks.has_key(name):
42
rlog(10, 'lockmanager', 'acquire %s' % name)
43
self.locks[name].acquire()
45
def release(self, name):
48
rlog(10, 'lockmanager', 'releasing %s' % name)
49
self.locks[name].release()
51
lockmanager = Lockmanager()