From a7e1ffca1f300ad6179828b354ae717895ce1e7d Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Wed, 9 Nov 2022 15:12:18 +0100 Subject: [PATCH] Make init call for python plugins blocking We don't want to run setupThing() before init() is completed. This also matches with how C++ plugins work. Fixes #598 --- libnymea-core/integrations/pythonintegrationplugin.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libnymea-core/integrations/pythonintegrationplugin.cpp b/libnymea-core/integrations/pythonintegrationplugin.cpp index 5343c970..c717161e 100644 --- a/libnymea-core/integrations/pythonintegrationplugin.cpp +++ b/libnymea-core/integrations/pythonintegrationplugin.cpp @@ -441,6 +441,13 @@ void PythonIntegrationPlugin::init() m_mutex.unlock(); callPluginFunction("init"); + + // Waiting for the init to finish. In case a plugin needs to do some more stuff in init we don't + // want to run setupThing() before the init finishes. + if (m_runningTasks.values().contains("init")) { + QFutureWatcher *watcher = m_runningTasks.key("init"); + watcher->waitForFinished(); + } } void PythonIntegrationPlugin::startMonitoringAutoThings()