From 5bf9b63c934f6fb20fd0e91ecee7cfae3674a2a0 Mon Sep 17 00:00:00 2001 From: "alexey.stratulat" <alexey.stratulat@demlabs.net> Date: Fri, 11 Feb 2022 19:00:46 +0700 Subject: [PATCH] [*] Fixed work of CLI command handler. --- .../cellframe-sdk/net/src/wrapping_dap_app_cli_server.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/modules/cellframe-sdk/net/src/wrapping_dap_app_cli_server.c b/modules/cellframe-sdk/net/src/wrapping_dap_app_cli_server.c index b98191cd..0db7ecf3 100644 --- a/modules/cellframe-sdk/net/src/wrapping_dap_app_cli_server.c +++ b/modules/cellframe-sdk/net/src/wrapping_dap_app_cli_server.c @@ -100,12 +100,13 @@ void element_py_func_del_all(){ } static int wrapping_cmdfunc(int argc, char **argv, char **str_reply){ + PyGILState_STATE state = PyGILState_Ensure(); size_t id_str_replay = elements_str_reply_add(str_reply); PyObject *obj_argv = stringToPyList(argc, argv); - PyObject *obj_id_str_replay = PyLong_FromSize_t(id_str_replay); - PyObject *arglist = Py_BuildValue("OO", obj_argv, obj_id_str_replay); - Py_XINCREF(arglist); + PyObject *arglist = Py_BuildValue("On", obj_argv, id_str_replay); + Py_INCREF(arglist); PyObject *binden_obj_cmdfunc = element_py_func_get(argv[0]); + Py_INCREF(binden_obj_cmdfunc); PyObject *result = PyObject_CallObject(binden_obj_cmdfunc, arglist); if (!result){ log_it(L_DEBUG, "Function can't called"); @@ -113,6 +114,8 @@ static int wrapping_cmdfunc(int argc, char **argv, char **str_reply){ } Py_XDECREF(arglist); Py_XDECREF(obj_argv); + Py_XDECREF(binden_obj_cmdfunc); + PyGILState_Release(state); elements_str_reply_delete(id_str_replay); return 0; } -- GitLab