1
2
3
4
5 """ manages locks """
6
7 __copyright__ = 'this file is in the public domain'
8
9 from gozerbot.generic import rlog
10 import thread
11
13
14 """ place to hold locks """
15
18
20 """ allocate a new lock """
21 name = name.lower()
22 self.locks[name] = thread.allocate_lock()
23 rlog(10, 'lockmanager', 'allocated %s' % name)
24
25 - def get(self, name):
26 """ get lock """
27 name = name.lower()
28 if not self.locks.has_key(name):
29 self.allocate(name)
30 return self.locks[name]
31
33 """ delete lock """
34 if self.locks.has_key(name):
35 del self.locks[name]
36
38 """ acquire lock """
39 name = name.lower()
40 if not self.locks.has_key(name):
41 self.allocate(name)
42 rlog(10, 'lockmanager', 'acquire %s' % name)
43 self.locks[name].acquire()
44
46 """ release lock """
47 name = name.lower()
48 rlog(10, 'lockmanager', 'releasing %s' % name)
49 self.locks[name].release()
50
51 lockmanager = Lockmanager()
52