From f48adb004b1a9b929f540e85a2a55ab461f689aa Mon Sep 17 00:00:00 2001 From: Gary Kotton Date: Sun, 18 Dec 2016 21:46:05 +0200 Subject: [PATCH] Directory: fix concurreny issue If more than one thread would call _get_plugin_directory at the same time and there was no plugin created then this may lead to a race and each thread may have a different list of plugin data. Change-Id: Id5d23f06e5f59fc07b660ef6c23cacf8cde1b999 --- neutron_lib/plugins/directory.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/neutron_lib/plugins/directory.py b/neutron_lib/plugins/directory.py index 22840b3..4ea743b 100644 --- a/neutron_lib/plugins/directory.py +++ b/neutron_lib/plugins/directory.py @@ -66,7 +66,8 @@ _PLUGIN_DIRECTORY = None @_synchronized("plugin-directory") def _create_plugin_directory(): global _PLUGIN_DIRECTORY - _PLUGIN_DIRECTORY = _PluginDirectory() + if _PLUGIN_DIRECTORY is None: + _PLUGIN_DIRECTORY = _PluginDirectory() return _PLUGIN_DIRECTORY