Commits

Anonymous committed 1920422

Don't deadlock on a reentrant call.

Comments (0)

Files changed (1)

 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