Test urlparse cache with try/except instead of has_key.

This makes it thread-safe again.
This commit is contained in:
Guido van Rossum 1997-07-11 20:13:10 +00:00
parent 7ffbd2f86c
commit 185147f1d0
1 changed files with 3 additions and 1 deletions

View File

@ -44,8 +44,10 @@ def clear_cache():
# (e.g. netloc is a single string) and we don't expand % escapes.
def urlparse(url, scheme = '', allow_framents = 1):
key = url, scheme, allow_framents
if _parse_cache.has_key(key):
try:
return _parse_cache[key]
except KeyError:
pass
if len(_parse_cache) >= MAX_CACHE_SIZE: # avoid runaway growth
clear_cache()
netloc = path = params = query = fragment = ''