]>
Commit | Line | Data |
---|---|---|
dfff8bd5 MM |
1 | # vi: encoding=utf-8 ts=8 sts=4 sw=4 et |
2 | ||
57b6e61d MM |
3 | import fcntl |
4 | ||
5 | import path | |
6 | ||
9a8908ac MM |
7 | locks_list = [] |
8 | ||
4d9b6f71 | 9 | def lock(n, non_block = 0): |
9be34149 | 10 | f = open(path.lock_dir + '/' + n, "a") |
dfff8bd5 MM |
11 | # blah, otherwise it gets garbage collected and doesn't work |
12 | locks_list.append(f) | |
13 | if non_block: | |
14 | try: | |
15 | fcntl.flock(f, fcntl.LOCK_EX | fcntl.LOCK_NB) | |
16 | except: | |
17 | f.close() | |
18 | return None | |
19 | else: | |
20 | fcntl.flock(f, fcntl.LOCK_EX) | |
21 | return f |