[FIX] missing a threading.RLock in RegistryManager.get():

if no registry exists and several calls to RegistryManager.get() are called at the same time
by several threads, several registries will be created one after the other and only the last
one will be kept in cls.registries

lp bug: https://launchpad.net/bugs/1238560 fixed

bzr revid: guewen.baconnier@camptocamp.com-20131011092632-b267vhdadh7q9som
This commit is contained in:
Guewen Baconnier 2013-10-11 11:26:32 +02:00
parent dafa12d92c
commit 9c769c9a99
1 changed files with 10 additions and 9 deletions

View File

@ -185,6 +185,7 @@ class RegistryManager(object):
@classmethod
def get(cls, db_name, force_demo=False, status=None, update_module=False):
""" Return a registry for a given database name."""
with cls.registries_lock:
try:
return cls.registries[db_name]
except KeyError: