| Index: gclient_utils.py
 | 
| diff --git a/gclient_utils.py b/gclient_utils.py
 | 
| index 235d414585835785db978f3d3ffe88b1e11c2eca..39fb2f660345342aefc1ea961f3003199ff3bb06 100644
 | 
| --- a/gclient_utils.py
 | 
| +++ b/gclient_utils.py
 | 
| @@ -481,7 +481,14 @@ class WorkItem(object):
 | 
|    def __init__(self, name):
 | 
|      # A unique string representing this work item.
 | 
|      self._name = name
 | 
| -    self.lock = threading.RLock()
 | 
| +    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
 | 
|  
 | 
|    def run(self, work_queue):
 | 
|      """work_queue is passed as keyword argument so it should be
 | 
| 
 |