From 7da0994e5743522bbe78c56fd783dd37fcc7bc6d Mon Sep 17 00:00:00 2001 From: Philippe Proulx Date: Wed, 16 Aug 2017 20:54:30 -0400 Subject: [PATCH] Python plugin provider: only finalize interpreter if we initialized it MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Philippe Proulx Signed-off-by: Jérémie Galarneau --- python-plugin-provider/python-plugin-provider.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/python-plugin-provider/python-plugin-provider.c b/python-plugin-provider/python-plugin-provider.c index 2cb5a733..2404fc7a 100644 --- a/python-plugin-provider/python-plugin-provider.c +++ b/python-plugin-provider/python-plugin-provider.c @@ -57,6 +57,7 @@ enum python_state { } python_state = PYTHON_STATE_NOT_INITED; static PyObject *py_try_load_plugin_module_func = NULL; +static bool python_was_initialized_by_us; static void print_python_traceback_warn(void) @@ -101,6 +102,7 @@ void init_python(void) if (!Py_IsInitialized()) { BT_LOGI_STR("Python interpreter is not initialized: initializing Python interpreter."); Py_InitializeEx(0); + python_was_initialized_by_us = true; BT_LOGI("Initialized Python interpreter: version=\"%s\"", Py_GetVersion()); } else { @@ -138,7 +140,7 @@ end: __attribute__((destructor)) static void fini_python(void) { - if (Py_IsInitialized()) { + if (Py_IsInitialized() && python_was_initialized_by_us) { if (py_try_load_plugin_module_func) { Py_DECREF(py_try_load_plugin_module_func); py_try_load_plugin_module_func = NULL; -- 2.34.1