Skip to content
Snippets Groups Projects
Commit 04a523ac authored by alexey.stratulat's avatar alexey.stratulat
Browse files

[*] Fixed procedure deinitialization plugins.

parent c80c059b
No related branches found
No related tags found
1 merge request!3Features 2954
...@@ -36,9 +36,6 @@ int dap_chain_plugins_init(dap_config_t *config){ ...@@ -36,9 +36,6 @@ int dap_chain_plugins_init(dap_config_t *config){
} }
return 0; return 0;
} }
void dap_chain_plugins_deinit(){
Py_Finalize();
}
void dap_chain_plugins_loading(){ void dap_chain_plugins_loading(){
log_it(L_NOTICE, "Loading plugins"); log_it(L_NOTICE, "Loading plugins");
...@@ -123,3 +120,23 @@ void dap_chain_plugins_load_plugin(const char *dir_path, const char *name){ ...@@ -123,3 +120,23 @@ void dap_chain_plugins_load_plugin(const char *dir_path, const char *name){
} }
} }
void dap_chain_plugins_deinit(){
log_it(L_NOTICE, "Deinit python plugins");
dap_chain_plugin_list_module_t *plugins = dap_chain_plugins_list_get();
dap_chain_plugin_list_module_t *plugin;
dap_chain_plugin_list_module_t *tmp;
PyObject *res_int = NULL;
LL_FOREACH_SAFE(plugins, plugin, tmp){
PyObject *func_deinit = PyObject_GetAttrString(plugin->obj_module, "deinit");
if (func_deinit != NULL || PyCallable_Check(func_deinit)){
res_int = PyEval_CallObject(func_deinit, NULL);
} else {
log_it(L_WARNING, "For plugin %s can't callable function deinit", plugin->name);
}
DAP_FREE(plugin->name);
Py_XDECREF(plugin->obj_module);
LL_DELETE(plugins, plugin);
}
Py_Finalize();
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment