diff --git a/platypush/context/__init__.py b/platypush/context/__init__.py index 4f7ffccd..95945b58 100644 --- a/platypush/context/__init__.py +++ b/platypush/context/__init__.py @@ -94,13 +94,15 @@ def get_plugin(plugin_name, reload=False): try: plugin_class = getattr(plugin, cls_name) - - with plugins_init_locks[plugin_name]: - plugins[plugin_name] = plugin_class(**plugin_conf) except AttributeError as e: logger.warning('No such class in {}: {}'.format(plugin_name, cls_name)) raise RuntimeError(e) + with plugins_init_locks[plugin_name]: + if plugins.get(plugin_name) and not reload: + return plugins[plugin_name] + plugins[plugin_name] = plugin_class(**plugin_conf) + return plugins[plugin_name] def get_bus():