From a52a4ae9d480a504dd1373e96f0fa1cc41ad3fb2 Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Thu, 1 May 2014 12:50:02 +0200 Subject: [PATCH] flow recycler: unix socket support Support starting and shutting down the flow recycler thread in the unix socket runmode. --- src/runmode-unix-socket.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/runmode-unix-socket.c b/src/runmode-unix-socket.c index 03d7790315..ec53b3f6ff 100644 --- a/src/runmode-unix-socket.c +++ b/src/runmode-unix-socket.c @@ -286,15 +286,24 @@ TmEcode UnixSocketPcapFilesCheck(void *data) SCFree(this->currentfile); } this->currentfile = NULL; - TmThreadKillThreadsFamily(TVT_MGMT); - TmThreadClearThreadsFamily(TVT_MGMT); + + /* handle graceful shutdown of the flow engine, it's helper + * threads and the packet threads */ + FlowKillFlowManagerThread(); TmThreadDisableThreadsWithTMS(TM_FLAG_RECEIVE_TM | TM_FLAG_DECODE_TM); FlowForceReassembly(); TmThreadKillThreadsFamily(TVT_PPT); TmThreadClearThreadsFamily(TVT_PPT); + FlowKillFlowRecyclerThread(); RunModeShutDown(); + + /* kill remaining mgt threads */ + TmThreadKillThreadsFamily(TVT_MGMT); + TmThreadClearThreadsFamily(TVT_MGMT); SCPerfReleaseResources(); - /* thread killed, we can run non thread-safe shutdown functions */ + + /* mgt and ppt threads killed, we can run non thread-safe + * shutdown functions */ FlowShutdown(); HostCleanup(); StreamTcpFreeConfig(STREAM_VERBOSE); @@ -332,6 +341,7 @@ TmEcode UnixSocketPcapFilesCheck(void *data) RunModeInitializeOutputs(); RunModeDispatch(RUNMODE_PCAP_FILE, NULL, this->de_ctx); FlowManagerThreadSpawn(); + FlowRecyclerThreadSpawn(); SCPerfSpawnThreads(); /* Un-pause all the paused threads */ TmThreadContinueThreads();