Show More
@@ -51,7 +51,7 b' class lock(object):' | |||||
51 | self._parentheld = False |
|
51 | self._parentheld = False | |
52 | self._inherited = False |
|
52 | self._inherited = False | |
53 | self.postrelease = [] |
|
53 | self.postrelease = [] | |
54 |
self.pid = |
|
54 | self.pid = self._getpid() | |
55 | self.delay = self.lock() |
|
55 | self.delay = self.lock() | |
56 | if self.acquirefn: |
|
56 | if self.acquirefn: | |
57 | self.acquirefn() |
|
57 | self.acquirefn() | |
@@ -68,6 +68,10 b' class lock(object):' | |||||
68 |
|
68 | |||
69 | self.release() |
|
69 | self.release() | |
70 |
|
70 | |||
|
71 | def _getpid(self): | |||
|
72 | # wrapper around os.getpid() to make testing easier | |||
|
73 | return os.getpid() | |||
|
74 | ||||
71 | def lock(self): |
|
75 | def lock(self): | |
72 | timeout = self.timeout |
|
76 | timeout = self.timeout | |
73 | while True: |
|
77 | while True: | |
@@ -197,7 +201,7 b' class lock(object):' | |||||
197 | self.held -= 1 |
|
201 | self.held -= 1 | |
198 | elif self.held == 1: |
|
202 | elif self.held == 1: | |
199 | self.held = 0 |
|
203 | self.held = 0 | |
200 |
if |
|
204 | if self._getpid() != self.pid: | |
201 | # we forked, and are not the parent |
|
205 | # we forked, and are not the parent | |
202 | return |
|
206 | return | |
203 | try: |
|
207 | try: |
General Comments 0
You need to be logged in to leave comments.
Login now