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() |