Removed timeout from get_plugin lock; Added Redis server to tests configuration

This commit is contained in:
Fabio Manganiello 2018-09-20 10:59:18 +00:00
parent 6449504e26
commit 44962dd919
2 changed files with 4 additions and 13 deletions

View file

@ -2,7 +2,6 @@ import importlib
import logging import logging
from threading import Lock from threading import Lock
from contextlib import contextmanager
from ..config import Config from ..config import Config
@ -21,13 +20,6 @@ plugins_init_locks = {}
# Reference to the main application bus # Reference to the main application bus
main_bus = None main_bus = None
@contextmanager
def acquire_timeout(lock, timeout):
acquired = lock.acquire(timeout=timeout)
yield acquired
if acquired:
lock.release()
def register_backends(bus=None, global_scope=False, **kwargs): def register_backends(bus=None, global_scope=False, **kwargs):
""" Initialize the backend objects based on the configuration and returns """ Initialize the backend objects based on the configuration and returns
a name -> backend_instance map. a name -> backend_instance map.
@ -106,11 +98,7 @@ def get_plugin(plugin_name, reload=False):
logger.warning('No such class in {}: {}'.format(plugin_name, cls_name)) logger.warning('No such class in {}: {}'.format(plugin_name, cls_name))
raise RuntimeError(e) raise RuntimeError(e)
with acquire_timeout(plugins_init_locks[plugin_name], 5) as acquired: with plugins_init_locks[plugin_name]:
if not acquired:
logger.warning('Lock expired on get_plugin({}), resetting it'.format(plugin_name))
plugins_init_locks[plugin_name] = Lock()
if plugins.get(plugin_name) and not reload: if plugins.get(plugin_name) and not reload:
return plugins[plugin_name] return plugins[plugin_name]
plugins[plugin_name] = plugin_class(**plugin_conf) plugins[plugin_name] = plugin_class(**plugin_conf)

View file

@ -2,3 +2,6 @@ backend.http:
port: 8123 port: 8123
disable_websocket: True disable_websocket: True
backend.redis:
disabled: False