From 6d70751dd7379dbabbfe2272b6ec4e7c32ca47ba Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Fri, 30 Sep 2011 17:00:26 +0200 Subject: [PATCH] [FIX] deadlock between crons scheduling and new registry initialization creation bzr revid: xmo@openerp.com-20110930150026-m0h99fqk6qgne8i1 --- openerp/modules/registry.py | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/openerp/modules/registry.py b/openerp/modules/registry.py index 72cd4498cfa..20500f981c3 100644 --- a/openerp/modules/registry.py +++ b/openerp/modules/registry.py @@ -131,13 +131,11 @@ class RegistryManager(object): def get(cls, db_name, force_demo=False, status=None, update_module=False, pooljobs=True): """ Return a registry for a given database name.""" - with cls.registries_lock: - if db_name in cls.registries: - registry = cls.registries[db_name] - else: - registry = cls.new(db_name, force_demo, status, - update_module, pooljobs) - return registry + try: + return cls.registries[db_name] + except KeyError: + return cls.new(db_name, force_demo, status, + update_module, pooljobs) @classmethod def new(cls, db_name, force_demo=False, status=None, @@ -172,10 +170,10 @@ class RegistryManager(object): finally: cr.close() - if pooljobs: - registry.schedule_cron_jobs() + if pooljobs: + registry.schedule_cron_jobs() - return registry + return registry @classmethod def delete(cls, db_name): @@ -218,4 +216,4 @@ class RegistryManager(object): cls.registries[db_name].clear_caches() -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: \ No newline at end of file +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: