| Index: third_party/requests/packages/urllib3/_collections.py
|
| diff --git a/third_party/requests/packages/urllib3/_collections.py b/third_party/requests/packages/urllib3/_collections.py
|
| index b35a73672e8948bcb01e5b9c6fba187e41d2b742..282b8d5e0580f8920b9317fa38e23e9afec6274a 100644
|
| --- a/third_party/requests/packages/urllib3/_collections.py
|
| +++ b/third_party/requests/packages/urllib3/_collections.py
|
| @@ -5,7 +5,7 @@
|
| # the MIT License: http://www.opensource.org/licenses/mit-license.php
|
|
|
| from collections import MutableMapping
|
| -from threading import Lock
|
| +from threading import RLock
|
|
|
| try: # Python 2.7+
|
| from collections import OrderedDict
|
| @@ -40,18 +40,18 @@ class RecentlyUsedContainer(MutableMapping):
|
| self.dispose_func = dispose_func
|
|
|
| self._container = self.ContainerCls()
|
| - self._lock = Lock()
|
| + self.lock = RLock()
|
|
|
| def __getitem__(self, key):
|
| # Re-insert the item, moving it to the end of the eviction line.
|
| - with self._lock:
|
| + with self.lock:
|
| item = self._container.pop(key)
|
| self._container[key] = item
|
| return item
|
|
|
| def __setitem__(self, key, value):
|
| evicted_value = _Null
|
| - with self._lock:
|
| + with self.lock:
|
| # Possibly evict the existing value of 'key'
|
| evicted_value = self._container.get(key, _Null)
|
| self._container[key] = value
|
| @@ -65,21 +65,21 @@ class RecentlyUsedContainer(MutableMapping):
|
| self.dispose_func(evicted_value)
|
|
|
| def __delitem__(self, key):
|
| - with self._lock:
|
| + with self.lock:
|
| value = self._container.pop(key)
|
|
|
| if self.dispose_func:
|
| self.dispose_func(value)
|
|
|
| def __len__(self):
|
| - with self._lock:
|
| + with self.lock:
|
| return len(self._container)
|
|
|
| def __iter__(self):
|
| raise NotImplementedError('Iteration over this class is unlikely to be threadsafe.')
|
|
|
| def clear(self):
|
| - with self._lock:
|
| + with self.lock:
|
| # Copy pointers to all values, then wipe the mapping
|
| # under Python 2, this copies the list of values twice :-|
|
| values = list(self._container.values())
|
| @@ -90,5 +90,5 @@ class RecentlyUsedContainer(MutableMapping):
|
| self.dispose_func(value)
|
|
|
| def keys(self):
|
| - with self._lock:
|
| + with self.lock:
|
| return self._container.keys()
|
|
|