diff --git a/src/flow-manager.c b/src/flow-manager.c index e5e1aa2702..bcc1498c8b 100644 --- a/src/flow-manager.c +++ b/src/flow-manager.c @@ -84,10 +84,24 @@ SC_ATOMIC_DECLARE(uint32_t, flowrec_cnt); SC_ATOMIC_DECLARE(uint32_t, flowrec_busy); SC_ATOMIC_EXTERN(unsigned int, flow_flags); -SCCtrlCondT flow_manager_ctrl_cond; -SCCtrlMutex flow_manager_ctrl_mutex; -SCCtrlCondT flow_recycler_ctrl_cond; -SCCtrlMutex flow_recycler_ctrl_mutex; +static SCCtrlCondT flow_manager_ctrl_cond = PTHREAD_COND_INITIALIZER; +static SCCtrlMutex flow_manager_ctrl_mutex = PTHREAD_MUTEX_INITIALIZER; +static SCCtrlCondT flow_recycler_ctrl_cond = PTHREAD_COND_INITIALIZER; +static SCCtrlMutex flow_recycler_ctrl_mutex = PTHREAD_MUTEX_INITIALIZER; + +void FlowWakeupFlowManagerThread(void) +{ + SCCtrlMutexLock(&flow_manager_ctrl_mutex); + SCCtrlCondSignal(&flow_manager_ctrl_cond); + SCCtrlMutexUnlock(&flow_manager_ctrl_mutex); +} + +void FlowWakeupFlowRecyclerThread(void) +{ + SCCtrlMutexLock(&flow_recycler_ctrl_mutex); + SCCtrlCondSignal(&flow_recycler_ctrl_cond); + SCCtrlMutexUnlock(&flow_recycler_ctrl_mutex); +} void FlowTimeoutsInit(void) { @@ -942,9 +956,6 @@ void FlowManagerThreadSpawn(void) } flowmgr_number = (uint32_t)setting; - SCCtrlCondInit(&flow_manager_ctrl_cond, NULL); - SCCtrlMutexInit(&flow_manager_ctrl_mutex, NULL); - SCLogConfig("using %u flow manager threads", flowmgr_number); StatsRegisterGlobalCounter("flow.memuse", FlowGetMemuse); @@ -1148,9 +1159,6 @@ void FlowRecyclerThreadSpawn(void) } flowrec_number = (uint32_t)setting; - SCCtrlCondInit(&flow_recycler_ctrl_cond, NULL); - SCCtrlMutexInit(&flow_recycler_ctrl_mutex, NULL); - SCLogConfig("using %u flow recycler threads", flowrec_number); for (uint32_t u = 0; u < flowrec_number; u++) { diff --git a/src/flow-manager.h b/src/flow-manager.h index 157358d170..7cdd017000 100644 --- a/src/flow-manager.h +++ b/src/flow-manager.h @@ -24,13 +24,8 @@ #ifndef __FLOW_MANAGER_H__ #define __FLOW_MANAGER_H__ -/** flow manager scheduling condition */ -extern SCCtrlCondT flow_manager_ctrl_cond; -extern SCCtrlMutex flow_manager_ctrl_mutex; -#define FlowWakeupFlowManagerThread() SCCtrlCondSignal(&flow_manager_ctrl_cond) -extern SCCtrlCondT flow_recycler_ctrl_cond; -extern SCCtrlMutex flow_recycler_ctrl_mutex; -#define FlowWakeupFlowRecyclerThread() SCCtrlCondSignal(&flow_recycler_ctrl_cond) +void FlowWakeupFlowManagerThread(void); +void FlowWakeupFlowRecyclerThread(void); #define FlowTimeoutsReset() FlowTimeoutsInit() void FlowTimeoutsInit(void);