equal
deleted
inserted
replaced
4 # |
4 # |
5 # This software may be used and distributed according to the terms |
5 # This software may be used and distributed according to the terms |
6 # of the GNU General Public License, incorporated herein by reference. |
6 # of the GNU General Public License, incorporated herein by reference. |
7 |
7 |
8 import os, time |
8 import os, time |
|
9 import util |
9 |
10 |
10 class LockHeld(Exception): |
11 class LockHeld(Exception): |
11 pass |
12 pass |
12 |
13 |
13 class lock: |
14 class lock: |
32 raise inst |
33 raise inst |
33 |
34 |
34 def trylock(self): |
35 def trylock(self): |
35 pid = os.getpid() |
36 pid = os.getpid() |
36 try: |
37 try: |
37 os.symlink(str(pid), self.f) |
38 util.makelock(str(pid), self.f) |
38 self.held = 1 |
39 self.held = 1 |
39 except: |
40 except: |
40 raise LockHeld(os.readlink(self.f)) |
41 raise LockHeld(util.readlock(self.f)) |
41 |
42 |
42 def release(self): |
43 def release(self): |
43 if self.held: |
44 if self.held: |
44 self.held = 0 |
45 self.held = 0 |
45 os.unlink(self.f) |
46 os.unlink(self.f) |