Index: gclient_utils.py |
diff --git a/gclient_utils.py b/gclient_utils.py |
index 0dcef9df0985745d03109a4f7c4640641ad8c62c..918b489c7b3e244f0b4adfd34a5986f66934d8ba 100644 |
--- a/gclient_utils.py |
+++ b/gclient_utils.py |
@@ -480,17 +480,14 @@ def lockedmethod(method): |
class WorkItem(object): |
"""One work item.""" |
+ # On cygwin, creating a lock throwing randomly when nearing ~100 locks. |
+ # As a workaround, use a single lock. Yep you read it right. Single lock for |
+ # all the 100 objects. |
+ lock = threading.Lock() |
+ |
def __init__(self, name): |
# A unique string representing this work item. |
self._name = name |
- try: |
- self.lock = threading.Lock() |
- except: # pylint: disable=W0702 |
- if sys.platform != 'cygwin': |
- raise |
- # On cygwin, it's throwing randomly. Hack and reuse the single |
- # sys.stdout.lock. Yep you read it right. Single lock. |
- self.lock = sys.stdout.lock |
Dirk Pranke
2011/10/19 19:40:45
so what happens if threading.Lock() fails an excep
M-A Ruel
2011/10/19 19:47:56
The problem that I started seeing is that while th
|
def run(self, work_queue): |
"""work_queue is passed as keyword argument so it should be |