from _functools import partial, reduce
from collections import namedtuple
try:
- from _thread import allocate_lock as Lock
+ from _thread import RLock
except:
- from _dummy_thread import allocate_lock as Lock
+ from dummy_threading import RLock
################################################################################
hits = misses = currsize = 0
full = False
cache_get = cache.get # bound method to lookup a key or return None
- lock = Lock() # because linkedlist updates aren't threadsafe
+ lock = RLock() # because linkedlist updates aren't threadsafe
root = [] # root of the circular doubly linked list
root[:] = [root, root, None, None] # initialize by pointing to self