[Python-checkins] cpython: Handle a possible race condition

raymond.hettinger python-checkins at python.org
Tue May 1 02:35:51 CEST 2012


http://hg.python.org/cpython/rev/b3aeaef6c315
changeset:   76675:b3aeaef6c315
user:        Raymond Hettinger <python at rcn.com>
date:        Mon Apr 30 14:14:28 2012 -0700
summary:
  Handle a possible race condition

files:
  Lib/functools.py |  6 ++++++
  1 files changed, 6 insertions(+), 0 deletions(-)


diff --git a/Lib/functools.py b/Lib/functools.py
--- a/Lib/functools.py
+++ b/Lib/functools.py
@@ -241,6 +241,12 @@
                         return result
                 result = user_function(*args, **kwds)
                 with lock:
+                    if key in cache:
+                        # getting here means that this same key was added to the
+                        # cache while the lock was released.  since the link
+                        # update is already done, we need only return the
+                        # computed result and update the count of misses.
+                        pass
                     if currsize < maxsize:
                         # put result in a new link at the front of the queue
                         last = root[PREV]

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list