@@ -85,15 +85,6 @@ def load_engine(engine_data):
8585 for engine_attr in dir(engine):
8686 if engine_attr.startswith('_'):
8787 continue
88− if engine_attr == 'init':
89− init_fn = getattr(engine, engine_attr)
90−
91− def engine_init():
92− init_fn()
93− logger.debug('%s engine initialized', engine_data['name'])
94− logger.debug('Starting background initialization of %s engine', engine_data['name'])
95− threading.Thread(target=engine_init).start()
96− continue
9788 if engine_attr == 'inactive' and getattr(engine, engine_attr) is True:
9889 return None
9990 if getattr(engine, engine_attr) is None:
@@ -226,8 +217,24 @@ def get_engines_stats():
226217 ]
227218
228219
229−def initialize_engines(engine_list):
220+def load_engines(engine_list):
221+ global engines
222+ engines.clear()
230223 for engine_data in engine_list:
231224 engine = load_engine(engine_data)
232225 if engine is not None:
233226 engines[engine.name] = engine
227+ return engines
228+
229+
230+def initialize_engines(engine_list):
231+ load_engines(engine_list)
232+ for engine in engines.items():
233+ if hasattr(engine, 'init'):
234+ init_fn = getattr(engine, engine_attr)
235+
236+ def engine_init():
237+ init_fn()
238+ logger.debug('%s engine initialized', engine_data['name'])
239+ logger.debug('Starting background initialization of %s engine', engine_data['name'])
240+ threading.Thread(target=engine_init).start()