From bc2c7f462e79b5000636d5160301ee27dfff0f16 Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Thu, 5 Feb 2015 09:36:34 +0100 Subject: [PATCH] stats api: call thread deinit API functions Thread deinit funcs weren't called. This meant the lua scripts 'deinit' functions weren't called either. --- src/counters.c | 6 ++++++ src/util-error.c | 1 + src/util-error.h | 1 + 3 files changed, 8 insertions(+) diff --git a/src/counters.c b/src/counters.c index 01e80b4e17..197fe79ec6 100644 --- a/src/counters.c +++ b/src/counters.c @@ -320,6 +320,12 @@ static void *SCPerfMgmtThread(void *arg) TmThreadsSetFlag(tv_local, THV_RUNNING_DONE); TmThreadWaitForFlag(tv_local, THV_DEINIT); + r = tm->ThreadDeinit(tv_local, stats_thread_data); + if (r != TM_ECODE_OK) { + SCLogError(SC_ERR_THREAD_DEINIT, "Perf Counter API " + "ThreadDeinit failed"); + } + TmThreadsSetFlag(tv_local, THV_CLOSED); return NULL; } diff --git a/src/util-error.c b/src/util-error.c index 4ae917191e..d352a07e5c 100644 --- a/src/util-error.c +++ b/src/util-error.c @@ -114,6 +114,7 @@ const char * SCErrorToString(SCError err) CASE_CODE (SC_ERR_THREAD_SPAWN); CASE_CODE (SC_ERR_THREAD_CREATE); CASE_CODE (SC_ERR_THREAD_INIT); + CASE_CODE (SC_ERR_THREAD_DEINIT); CASE_CODE (SC_ERR_THRESHOLD_HASH_ADD); CASE_CODE (SC_ERR_UNDEFINED_VAR); CASE_CODE (SC_ERR_RULE_KEYWORD_UNKNOWN); diff --git a/src/util-error.h b/src/util-error.h index 9e9008a66c..019d0179e5 100644 --- a/src/util-error.h +++ b/src/util-error.h @@ -294,6 +294,7 @@ typedef enum { SC_ERR_NO_NETMAP, SC_ERR_NETMAP_CREATE, SC_ERR_NETMAP_READ, + SC_ERR_THREAD_DEINIT, /**< thread's deinit function failed */ } SCError; const char *SCErrorToString(SCError); -- 2.47.3