diff --git a/CMakeLists.txt b/CMakeLists.txt index 21b6d77c4c3f09f1693a290dadd8ed508d856b59..78c388021b325a1def21aafd081962c8bb8c9e19 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,7 +8,7 @@ set(CMAKE_C_STANDARD 11) SET( CPACK_PACKAGE_NAME "${PROJECT_NAME}") SET( CPACK_PACKAGE_VERSION_MAJOR 4) SET( CPACK_PACKAGE_VERSION_MINOR 0) -SET( CPACK_PACKAGE_VERSION_PATCH 59) +SET( CPACK_PACKAGE_VERSION_PATCH 60) # init CellFrame SDK add_definitions("-DDAP_VERSION=\"${CPACK_PACKAGE_VERSION_MAJOR}\"") diff --git a/cellframe-sdk b/cellframe-sdk index e41fa0cf262c52a0c2c568689f17370f35c284fa..9288a7232fbf714c053eb68a62c97e2909c6eb7b 160000 --- a/cellframe-sdk +++ b/cellframe-sdk @@ -1 +1 @@ -Subproject commit e41fa0cf262c52a0c2c568689f17370f35c284fa +Subproject commit 9288a7232fbf714c053eb68a62c97e2909c6eb7b diff --git a/sources/main.c b/sources/main.c index 1c135eceb8a598a7dda5771460cc2772e2d24ab7..34f69a0d4f2d758860c584b67471fabcf7ad9726 100755 --- a/sources/main.c +++ b/sources/main.c @@ -494,7 +494,9 @@ int main( int argc, const char **argv ) dap_chain_node_mempool_autoproc_deinit(); dap_chain_net_srv_xchange_deinit(); dap_chain_net_srv_stake_deinit(); - + dap_chain_net_deinit(); + dap_chain_global_db_deinit(); + dap_chain_deinit(); dap_config_close( g_config ); dap_common_deinit(); diff --git a/sources/sig_unix_handler.c b/sources/sig_unix_handler.c index 4610804bf85ddc16998ca9e623d8b0ad33ab3fc8..5436a2cfe765ab542869053b9d4e3c39eb07918a 100644 --- a/sources/sig_unix_handler.c +++ b/sources/sig_unix_handler.c @@ -1,7 +1,9 @@ #include <signal.h> #include <stdio.h> #include <string.h> + #include "dap_common.h" +#include "dap_events.h" #include "sig_unix_handler.h" #define LOG_TAG "sig_unix_handler" @@ -16,17 +18,21 @@ static void clear_pid_file() { fclose(f); } -_Noreturn static void sig_exit_handler(int sig_code) { +static void sig_exit_handler(int sig_code) { log_it(L_DEBUG, "Got exit code: %d", sig_code); clear_pid_file(); + //dap_events_stop_all(); exit(0); } int sig_unix_handler_init(const char *pid_path) { l_pid_path = strdup(pid_path); - signal(SIGINT, sig_exit_handler); - signal(SIGTERM, sig_exit_handler); - signal(SIGHUP, sig_exit_handler); + struct sigaction new_action, old_action; + new_action.sa_handler = sig_exit_handler; + new_action.sa_flags = 0; + sigaction(SIGTERM, &new_action, &old_action); + sigaction(SIGINT, &new_action, &old_action); + sigaction(SIGHUP, &new_action, &old_action); return 0; }