[Python-Dev] [Python-checkins] cpython: Handle a possible race condition (original) (raw)

Nick Coghlan ncoghlan at gmail.com
Tue May 1 04:21:48 CEST 2012


On Tue, May 1, 2012 at 10:35 AM, raymond.hettinger <python-checkins at python.org> wrote:

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 = userfunction(*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]

To get the desired effect, I believe you also need s/if currsize/elif currsize/

Cheers, Nick.

-- Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia



More information about the Python-Dev mailing list