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)
{
}
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);
}
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++) {
#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);