Fixed #19510 -- Race condition in template loading.
Thanks Kronuz and regebro.
This commit is contained in:
parent
0df8ff3dbe
commit
68905695b8
|
@ -43,7 +43,9 @@ class Loader(BaseLoader):
|
||||||
# If template directories were specified, use a hash to differentiate
|
# If template directories were specified, use a hash to differentiate
|
||||||
key = '-'.join([template_name, hashlib.sha1(force_bytes('|'.join(template_dirs))).hexdigest()])
|
key = '-'.join([template_name, hashlib.sha1(force_bytes('|'.join(template_dirs))).hexdigest()])
|
||||||
|
|
||||||
if key not in self.template_cache:
|
try:
|
||||||
|
template = self.template_cache[key]
|
||||||
|
except KeyError:
|
||||||
template, origin = self.find_template(template_name, template_dirs)
|
template, origin = self.find_template(template_name, template_dirs)
|
||||||
if not hasattr(template, 'render'):
|
if not hasattr(template, 'render'):
|
||||||
try:
|
try:
|
||||||
|
@ -55,7 +57,7 @@ class Loader(BaseLoader):
|
||||||
# of the actual template that does not exist.
|
# of the actual template that does not exist.
|
||||||
return template, origin
|
return template, origin
|
||||||
self.template_cache[key] = template
|
self.template_cache[key] = template
|
||||||
return self.template_cache[key], None
|
return template, None
|
||||||
|
|
||||||
def reset(self):
|
def reset(self):
|
||||||
"Empty the template cache."
|
"Empty the template cache."
|
||||||
|
|
Loading…
Reference in New Issue