suricata
|
#include "tmqh-packetpool.h"
#include "tm-threads-common.h"
#include "tm-modules.h"
#include "flow.h"
Go to the source code of this file.
Data Structures | |
struct | TmSlot_ |
Macros | |
#define | SleepUsec(usec) usleep((usec)) |
#define | SleepMsec(msec) usleep((msec) * 1000) |
#define | TM_QUEUE_NAME_MAX 16 |
#define | TM_THREAD_NAME_MAX 16 |
Typedefs | |
typedef TmEcode(* | TmSlotFunc) (ThreadVars *, Packet *, void *) |
typedef struct TmSlot_ | TmSlot |
Functions | |
void | TmSlotSetFuncAppend (ThreadVars *, TmModule *, const void *) |
Appends a new entry to the slots. More... | |
ThreadVars * | TmThreadCreate (const char *, const char *, const char *, const char *, const char *, const char *, void *(fn_p)(void *), int) |
ThreadVars * | TmThreadCreatePacketHandler (const char *, const char *, const char *, const char *, const char *, const char *) |
Creates and returns a TV instance for a Packet Processing Thread. This function doesn't support custom slots, and hence shouldn't be supplied "custom" as its slot type. All PPT threads are created with a mucond(see TmThreadCreate declaration) of 0. Hence the tv conditional variables are not used to kill the thread. More... | |
ThreadVars * | TmThreadCreateMgmtThread (const char *name, void *(fn_p)(void *), int) |
Creates and returns the TV instance for a Management thread(MGMT). This function supports only custom slot functions and hence a function pointer should be sent as an argument. More... | |
ThreadVars * | TmThreadCreateMgmtThreadByName (const char *name, const char *module, int mucond) |
Creates and returns the TV instance for a Management thread(MGMT). This function supports only custom slot functions and hence a function pointer should be sent as an argument. More... | |
ThreadVars * | TmThreadCreateCmdThreadByName (const char *name, const char *module, int mucond) |
Creates and returns the TV instance for a Command thread (CMD). This function supports only custom slot functions and hence a function pointer should be sent as an argument. More... | |
TmEcode | TmThreadSpawn (ThreadVars *) |
Spawns a thread associated with the ThreadVars instance tv. More... | |
void | TmThreadKillThreadsFamily (int family) |
void | TmThreadKillThreads (void) |
void | TmThreadClearThreadsFamily (int family) |
void | TmThreadAppend (ThreadVars *, int) |
Appends this TV to tv_root based on its type. More... | |
void | TmThreadSetGroupName (ThreadVars *tv, const char *name) |
TmEcode | TmThreadSetCPUAffinity (ThreadVars *, uint16_t) |
Set the thread options (cpu affinity). More... | |
TmEcode | TmThreadSetThreadPriority (ThreadVars *, int) |
Set the thread options (thread priority). More... | |
TmEcode | TmThreadSetCPU (ThreadVars *, uint8_t) |
TmEcode | TmThreadSetupOptions (ThreadVars *) |
Set the thread options (cpu affinitythread). Priority should be already set by pthread_create. More... | |
void | TmThreadSetPrio (ThreadVars *) |
Adjusting nice value for threads. More... | |
int | TmThreadGetNbThreads (uint8_t type) |
void | TmThreadInitMC (ThreadVars *) |
Initializes the mutex and condition variables for this TV. More... | |
void | TmThreadContinue (ThreadVars *) |
Unpauses a thread. More... | |
void | TmThreadContinueThreads (void) |
Unpauses all threads present in tv_root. More... | |
void | TmThreadCheckThreadState (void) |
Used to check the thread for certain conditions of failure. More... | |
TmEcode | TmThreadWaitOnThreadInit (void) |
Used to check if all threads have finished their initialization. On finding an un-initialized thread, it waits till that thread completes its initialization, before proceeding to the next thread. More... | |
int | TmThreadsCheckFlag (ThreadVars *, uint32_t) |
Check if a thread flag is set. More... | |
void | TmThreadsSetFlag (ThreadVars *, uint32_t) |
Set a thread flag. More... | |
void | TmThreadsUnsetFlag (ThreadVars *, uint32_t) |
Unset a thread flag. More... | |
void | TmThreadWaitForFlag (ThreadVars *, uint32_t) |
Waits till the specified flag(s) is(are) set. We don't bother if the kill flag has been set or not on the thread. More... | |
TmEcode | TmThreadsSlotVarRun (ThreadVars *tv, Packet *p, TmSlot *slot) |
Separate run function so we can call it recursively. More... | |
void | TmThreadDisablePacketThreads (void) |
Disable all packet threads. More... | |
void | TmThreadDisableReceiveThreads (void) |
Disable all threads having the specified TMs. More... | |
uint32_t | TmThreadCountThreadsByTmmFlags (uint8_t flags) |
returns a count of all the threads that match the flag More... | |
TmEcode | TmThreadWaitOnThreadRunning (void) |
Waits for all threads to be in a running state. More... | |
TmEcode | TmThreadsProcessDecodePseudoPackets (ThreadVars *tv, PacketQueueNoLock *decode_pq, TmSlot *slot) |
void | TmThreadsListThreads (void) |
int | TmThreadsRegisterThread (ThreadVars *tv, const int type) |
void | TmThreadsUnregisterThread (const int id) |
void | TmThreadsInjectFlowById (Flow *f, const int id) |
inject a flow into a threads flow queue More... | |
void | TmThreadsInitThreadsTimestamp (const SCTime_t ts) |
void | TmThreadsSetThreadTimestamp (const int id, const SCTime_t ts) |
void | TmThreadsGetMinimalTimestamp (struct timeval *ts) |
uint16_t | TmThreadsGetWorkerThreadMax (void) |
bool | TmThreadsTimeSubsysIsReady (void) |
bool | TmThreadsWaitForUnpause (ThreadVars *tv) |
Wait for a thread to become unpaused. More... | |
Variables | |
ThreadVars * | tv_root [TVT_MAX] |
SCMutex | tv_root_lock |
Definition in file tm-threads.h.
#define SleepMsec | ( | msec | ) | usleep((msec) * 1000) |
Definition at line 46 of file tm-threads.h.
#define SleepUsec | ( | usec | ) | usleep((usec)) |
Definition at line 45 of file tm-threads.h.
#define TM_QUEUE_NAME_MAX 16 |
Definition at line 49 of file tm-threads.h.
#define TM_THREAD_NAME_MAX 16 |
Definition at line 50 of file tm-threads.h.
typedef TmEcode(* TmSlotFunc) (ThreadVars *, Packet *, void *) |
Definition at line 51 of file tm-threads.h.
void TmSlotSetFuncAppend | ( | ThreadVars * | tv, |
TmModule * | tm, | ||
const void * | data | ||
) |
Appends a new entry to the slots.
tv | TV the slot is attached to. |
tm | TM to append. |
data | Data to be passed on to the slot init function. |
The | allocated TmSlot or NULL if there is an error |
Definition at line 649 of file tm-threads.c.
References ThreadVars_::break_loop, TmModule_::cap_flags, ThreadVars_::cap_flags, TmModule_::flags, TmModule_::Func, TmSlot_::Management, TmModule_::Management, TmModule_::PktAcqBreakLoop, TmModule_::PktAcqLoop, TmSlot_::PktAcqLoop, SC_ATOMIC_INITPTR, SCCalloc, TmSlot_::slot_initdata, TmSlot_::slot_next, TmSlot_::SlotFunc, TmSlot_::SlotThreadDeinit, TmSlot_::SlotThreadExitPrintStats, TmSlot_::SlotThreadInit, TmModule_::ThreadDeinit, TmModule_::ThreadExitPrintStats, TmModule_::ThreadInit, TmSlot_::tm_flags, TmSlot_::tm_id, ThreadVars_::tm_slots, ThreadVars_::tmm_flags, TmModuleGetIDForTM(), tv, and unlikely.
Referenced by RunModeErfFileAutoFp(), RunModeErfFileSingle(), RunModeFilePcapAutoFp(), RunModeFilePcapSingle(), RunModeSetIPSAutoFp(), RunModeSetIPSWorker(), RunModeSetLiveCaptureAutoFp(), TmThreadCreateCmdThreadByName(), and TmThreadCreateMgmtThreadByName().
void TmThreadAppend | ( | ThreadVars * | tv, |
int | type | ||
) |
Appends this TV to tv_root based on its type.
type | holds the type this TV belongs to. |
Definition at line 1160 of file tm-threads.c.
References ThreadVars_::next, SCMutexLock, SCMutexUnlock, tv, tv_root, tv_root_lock, and type.
Referenced by TmThreadSpawn().
void TmThreadCheckThreadState | ( | void | ) |
Used to check the thread for certain conditions of failure.
Definition at line 1924 of file tm-threads.c.
References FatalError, ThreadVars_::name, ThreadVars_::next, SCMutexLock, SCMutexUnlock, THV_FAILED, TmThreadsCheckFlag(), tv, tv_root, tv_root_lock, and TVT_MAX.
Referenced by SuricataMainLoop().
void TmThreadClearThreadsFamily | ( | int | family | ) |
Definition at line 1638 of file tm-threads.c.
References ThreadVars_::next, SCMutexLock, tv, tv_root, tv_root_lock, and TVT_MAX.
void TmThreadContinue | ( | ThreadVars * | tv | ) |
Unpauses a thread.
tv | Pointer to a TV instance that has to be unpaused |
Definition at line 1772 of file tm-threads.c.
References THV_PAUSE, TmThreadsUnsetFlag(), and tv.
Referenced by TmThreadContinueDetectLoaderThreads(), and TmThreadContinueThreads().
void TmThreadContinueThreads | ( | void | ) |
Unpauses all threads present in tv_root.
Definition at line 1908 of file tm-threads.c.
References ThreadVars_::next, SCMutexLock, SCMutexUnlock, TmThreadContinue(), tv, tv_root, tv_root_lock, and TVT_MAX.
Referenced by SuricataPostInit().
uint32_t TmThreadCountThreadsByTmmFlags | ( | uint8_t | flags | ) |
returns a count of all the threads that match the flag
Definition at line 2010 of file tm-threads.c.
References cnt, flags, ThreadVars_::next, SCMutexLock, SCMutexUnlock, ThreadVars_::tmm_flags, tv, tv_root, tv_root_lock, and TVT_MAX.
Referenced by PacketPoolPostRunmodes().
ThreadVars* TmThreadCreate | ( | const char * | , |
const char * | , | ||
const char * | , | ||
const char * | , | ||
const char * | , | ||
const char * | , | ||
void * | fn_p)(void *, | ||
int | |||
) |
ThreadVars* TmThreadCreateCmdThreadByName | ( | const char * | name, |
const char * | module, | ||
int | mucond | ||
) |
Creates and returns the TV instance for a Command thread (CMD). This function supports only custom slot functions and hence a function pointer should be sent as an argument.
name | Name of this TV instance |
module | Name of TmModule with COMMAND flag set. |
mucond | Flag to indicate whether to initialize the condition and the mutex variables for this newly created TV. |
the | newly created TV instance, or NULL on error |
Definition at line 1134 of file tm-threads.c.
References ThreadVars_::id, m, MANAGEMENT_CPU_SET, TmModuleGetByName(), TmSlotSetFuncAppend(), TmThreadCreate(), TmThreadSetCPU(), TmThreadsRegisterThread(), tv, TVT_CMD, and ThreadVars_::type.
ThreadVars* TmThreadCreateMgmtThread | ( | const char * | name, |
void * | fn_p)(void *, | ||
int | mucond | ||
) |
Creates and returns the TV instance for a Management thread(MGMT). This function supports only custom slot functions and hence a function pointer should be sent as an argument.
name | Name of this TV instance |
fn_p | Pointer to function when "slots" is of type "custom" |
mucond | Flag to indicate whether to initialize the condition and the mutex variables for this newly created TV. |
the | newly created TV instance, or NULL on error |
Definition at line 1073 of file tm-threads.c.
References ThreadVars_::id, MANAGEMENT_CPU_SET, TmThreadCreate(), TmThreadSetCPU(), TmThreadsRegisterThread(), tv, TVT_MGMT, and ThreadVars_::type.
ThreadVars* TmThreadCreateMgmtThreadByName | ( | const char * | name, |
const char * | module, | ||
int | mucond | ||
) |
Creates and returns the TV instance for a Management thread(MGMT). This function supports only custom slot functions and hence a function pointer should be sent as an argument.
name | Name of this TV instance |
module | Name of TmModule with MANAGEMENT flag set. |
mucond | Flag to indicate whether to initialize the condition and the mutex variables for this newly created TV. |
the | newly created TV instance, or NULL on error |
Definition at line 1101 of file tm-threads.c.
References ThreadVars_::id, m, MANAGEMENT_CPU_SET, TmModuleGetByName(), TmSlotSetFuncAppend(), TmThreadCreate(), TmThreadSetCPU(), TmThreadsRegisterThread(), tv, TVT_MGMT, and ThreadVars_::type.
Referenced by BypassedFlowManagerThreadSpawn().
ThreadVars* TmThreadCreatePacketHandler | ( | const char * | name, |
const char * | inq_name, | ||
const char * | inqh_name, | ||
const char * | outq_name, | ||
const char * | outqh_name, | ||
const char * | slots | ||
) |
Creates and returns a TV instance for a Packet Processing Thread. This function doesn't support custom slots, and hence shouldn't be supplied "custom" as its slot type. All PPT threads are created with a mucond(see TmThreadCreate declaration) of 0. Hence the tv conditional variables are not used to kill the thread.
name | Name of this TV instance |
inq_name | Incoming queue name |
inqh_name | Incoming queue handler name as set by TmqhSetup() |
outq_name | Outgoing queue name |
outqh_name | Outgoing queue handler as set by TmqhSetup() |
slots | String representation for the slot function to be used |
the | newly created TV instance, or NULL on error |
Definition at line 1044 of file tm-threads.c.
References ThreadVars_::id, TmThreadCreate(), TmThreadsRegisterThread(), tv, TVT_PPT, and ThreadVars_::type.
Referenced by RunModeErfFileAutoFp(), RunModeErfFileSingle(), RunModeFilePcapAutoFp(), RunModeFilePcapSingle(), RunModeSetIPSAutoFp(), RunModeSetIPSWorker(), and RunModeSetLiveCaptureAutoFp().
void TmThreadDisablePacketThreads | ( | void | ) |
Disable all packet threads.
Definition at line 1487 of file tm-threads.c.
Referenced by PostRunDeinit().
void TmThreadDisableReceiveThreads | ( | void | ) |
Disable all threads having the specified TMs.
Breaks out of the packet acquisition loop, and bumps into the 'flow loop', where it will process packets from the flow engine's shutdown handling.
Definition at line 1358 of file tm-threads.c.
References FatalError, TmModule_::flags, ThreadVars_::name, SCMutexLock, TmSlot_::slot_next, TM_FLAG_RECEIVE_TM, TmSlot_::tm_id, ThreadVars_::tm_slots, TmModuleGetById(), tv, tv_root, tv_root_lock, and TVT_PPT.
Referenced by PostRunDeinit().
int TmThreadGetNbThreads | ( | uint8_t | type | ) |
Definition at line 838 of file tm-threads.c.
References MAX_CPU_SET, ThreadsAffinityType_::nb_threads, SCLogError, thread_affinity, and type.
Referenced by RunModeErfFileAutoFp(), RunModeFilePcapAutoFp(), and TmThreadsGetWorkerThreadMax().
void TmThreadInitMC | ( | ThreadVars * | tv | ) |
Initializes the mutex and condition variables for this TV.
It can be used by a thread to control a wait loop that can also be influenced by other threads.
tv | Pointer to a TV instance |
Definition at line 1719 of file tm-threads.c.
References ThreadVars_::ctrl_cond, ThreadVars_::ctrl_mutex, FatalError, SCCtrlCondInit, SCCtrlMutexInit, SCMalloc, and tv.
void TmThreadKillThreads | ( | void | ) |
Definition at line 1566 of file tm-threads.c.
References TmThreadKillThreadsFamily(), and TVT_MAX.
Referenced by SuricataShutdown().
void TmThreadKillThreadsFamily | ( | int | family | ) |
Definition at line 1537 of file tm-threads.c.
References BUG_ON, MIN_WAIT_TIME, SCMutexLock, tv, tv_root, tv_root_lock, and TVT_MAX.
Referenced by TmThreadKillThreads().
int TmThreadsCheckFlag | ( | ThreadVars * | tv, |
uint32_t | flag | ||
) |
Check if a thread flag is set.
1 | flag is set. |
0 | flag is not set. |
Definition at line 93 of file tm-threads.c.
References SC_ATOMIC_GET, and tv.
Referenced by FlowDisableFlowManagerThread(), TmThreadCheckThreadState(), TmThreadsWaitForUnpause(), TmThreadWaitForFlag(), and TmThreadWaitOnThreadInit().
TmEcode TmThreadSetCPU | ( | ThreadVars * | , |
uint8_t | |||
) |
Definition at line 822 of file tm-threads.c.
References ThreadVars_::cpu_affinity, MAX_CPU_SET, SCLogError, THREAD_SET_AFFTYPE, ThreadVars_::thread_setup_flags, threading_set_cpu_affinity, TM_ECODE_FAILED, TM_ECODE_OK, tv, and type.
Referenced by RunModeFilePcapAutoFp(), RunModeFilePcapSingle(), RunModeSetIPSAutoFp(), RunModeSetIPSWorker(), RunModeSetLiveCaptureAutoFp(), TmThreadCreateCmdThreadByName(), TmThreadCreateMgmtThread(), and TmThreadCreateMgmtThreadByName().
TmEcode TmThreadSetCPUAffinity | ( | ThreadVars * | tv, |
uint16_t | cpu | ||
) |
Set the thread options (cpu affinity).
tv | pointer to the ThreadVars to setup the affinity. |
cpu | cpu on which affinity is set. |
TM_ECODE_OK |
Definition at line 813 of file tm-threads.c.
References ThreadVars_::cpu_affinity, THREAD_SET_AFFINITY, ThreadVars_::thread_setup_flags, TM_ECODE_OK, and tv.
Referenced by RunModeErfFileAutoFp().
void TmThreadSetGroupName | ( | ThreadVars * | tv, |
const char * | name | ||
) |
Definition at line 1620 of file tm-threads.c.
References SCLogError, SCStrdup, ThreadVars_::thread_group_name, tv, and unlikely.
Referenced by RunModeErfFileAutoFp(), RunModeFilePcapAutoFp(), RunModeSetIPSAutoFp(), and RunModeSetLiveCaptureAutoFp().
void TmThreadSetPrio | ( | ThreadVars * | ) |
Adjusting nice value for threads.
Definition at line 776 of file tm-threads.c.
References ThreadVars_::name, SCEnter, SCLogDebug, SCLogError, SCReturn, ThreadVars_::thread_priority, and tv.
TmEcode TmThreadSetThreadPriority | ( | ThreadVars * | tv, |
int | prio | ||
) |
Set the thread options (thread priority).
tv | Pointer to the ThreadVars to setup the thread priority. |
TM_ECODE_OK. |
Definition at line 765 of file tm-threads.c.
References ThreadVars_::thread_priority, THREAD_SET_PRIORITY, ThreadVars_::thread_setup_flags, TM_ECODE_OK, and tv.
Referenced by RunModeErfFileAutoFp().
TmEcode TmThreadSetupOptions | ( | ThreadVars * | tv | ) |
Set the thread options (cpu affinitythread). Priority should be already set by pthread_create.
tv | pointer to the ThreadVars of the calling thread. |
Definition at line 854 of file tm-threads.c.
References ThreadVars_::cpu_affinity, ThreadVars_::name, SCGetThreadIdLong, SCLogPerf, THREAD_SET_AFFINITY, ThreadVars_::thread_setup_flags, and tv.
void TmThreadsGetMinimalTimestamp | ( | struct timeval * | ts | ) |
Definition at line 2250 of file tm-threads.c.
References SCTIME_INITIALIZER.
uint16_t TmThreadsGetWorkerThreadMax | ( | void | ) |
Definition at line 2287 of file tm-threads.c.
References SCLogWarning, threading_detect_ratio, TmThreadGetNbThreads(), UtilCpuGetNumProcessorsOnline(), and WORKER_CPU_SET.
Referenced by RunModeSetIPSAutoFp(), and RunModeSetLiveCaptureAutoFp().
void TmThreadsInitThreadsTimestamp | ( | const SCTime_t | ts | ) |
Definition at line 2234 of file tm-threads.c.
Referenced by PcapFileDispatch().
void TmThreadsInjectFlowById | ( | Flow * | f, |
const int | id | ||
) |
inject a flow into a threads flow queue
Definition at line 2305 of file tm-threads.c.
References BUG_ON.
Referenced by FlowSendToLocalThread().
void TmThreadsListThreads | ( | void | ) |
Definition at line 2088 of file tm-threads.c.
References SCMutexLock.
TmEcode TmThreadSpawn | ( | ThreadVars * | tv | ) |
Spawns a thread associated with the ThreadVars instance tv.
TM_ECODE_OK | on success and TM_ECODE_FAILED on failure |
Definition at line 1663 of file tm-threads.c.
References FatalError, SCLogDebug, ThreadVars_::t, threading_set_stack_size, THV_INIT_DONE, THV_RUNNING_DONE, TM_ECODE_OK, ThreadVars_::tm_func, TmThreadAppend(), TmThreadWaitForFlag(), tv, and ThreadVars_::type.
Referenced by BypassedFlowManagerThreadSpawn(), RunModeErfFileAutoFp(), RunModeErfFileSingle(), RunModeFilePcapAutoFp(), RunModeFilePcapSingle(), RunModeSetIPSAutoFp(), RunModeSetIPSWorker(), and RunModeSetLiveCaptureAutoFp().
TmEcode TmThreadsProcessDecodePseudoPackets | ( | ThreadVars * | tv, |
PacketQueueNoLock * | decode_pq, | ||
TmSlot * | slot | ||
) |
Definition at line 114 of file tm-threads.c.
References DEBUG_VALIDATE_BUG_ON, Packet_::flow, PacketDequeueNoLock(), PacketQueueNoLock_::top, and unlikely.
int TmThreadsRegisterThread | ( | ThreadVars * | tv, |
const int | type | ||
) |
id | thread id, or 0 if not found |
Definition at line 2112 of file tm-threads.c.
References SCMutexLock.
Referenced by TmThreadCreateCmdThreadByName(), TmThreadCreateMgmtThread(), TmThreadCreateMgmtThreadByName(), and TmThreadCreatePacketHandler().
void TmThreadsSetFlag | ( | ThreadVars * | , |
uint32_t | |||
) |
Set a thread flag.
Definition at line 101 of file tm-threads.c.
References SC_ATOMIC_OR, and tv.
Referenced by FlowDisableFlowManagerThread(), ReceiveErfDagLoop(), ReceiveErfFileLoop(), TmThreadCreate(), and TmThreadsWaitForUnpause().
void TmThreadsSetThreadTimestamp | ( | const int | id, |
const SCTime_t | ts | ||
) |
Definition at line 2188 of file tm-threads.c.
References SCMutexLock.
TmEcode TmThreadsSlotVarRun | ( | ThreadVars * | tv, |
Packet * | p, | ||
TmSlot * | slot | ||
) |
Separate run function so we can call it recursively.
Definition at line 133 of file tm-threads.c.
References DEBUG_VALIDATE_BUG_ON, Packet_::flow, PACKET_PROFILING_TMM_END, PACKET_PROFILING_TMM_START, SC_ATOMIC_GET, TmSlot_::slot_next, TM_ECODE_FAILED, tv, and unlikely.
bool TmThreadsTimeSubsysIsReady | ( | void | ) |
Definition at line 2214 of file tm-threads.c.
References SCMutexLock, and SCTIME_INITIALIZER.
void TmThreadsUnregisterThread | ( | const int | id | ) |
Definition at line 2155 of file tm-threads.c.
References SCMutexLock.
void TmThreadsUnsetFlag | ( | ThreadVars * | , |
uint32_t | |||
) |
Unset a thread flag.
Definition at line 109 of file tm-threads.c.
References SC_ATOMIC_AND, and tv.
Referenced by TmThreadContinue(), and TmThreadsWaitForUnpause().
bool TmThreadsWaitForUnpause | ( | ThreadVars * | tv | ) |
Wait for a thread to become unpaused.
Check if a thread should wait to be unpaused and wait if so, or until the thread kill flag is set.
Also returns if the kill flag is set.
Definition at line 364 of file tm-threads.c.
References SleepUsec, THV_KILL, THV_PAUSE, THV_PAUSED, TmThreadsCheckFlag(), TmThreadsSetFlag(), TmThreadsUnsetFlag(), and tv.
void TmThreadWaitForFlag | ( | ThreadVars * | tv, |
uint32_t | flags | ||
) |
Waits till the specified flag(s) is(are) set. We don't bother if the kill flag has been set or not on the thread.
tv | Pointer to the TV instance. |
Definition at line 1760 of file tm-threads.c.
References flags, SleepUsec, TmThreadsCheckFlag(), and tv.
Referenced by TmThreadSpawn().
TmEcode TmThreadWaitOnThreadInit | ( | void | ) |
Used to check if all threads have finished their initialization. On finding an un-initialized thread, it waits till that thread completes its initialization, before proceeding to the next thread.
TM_ECODE_OK | all initialized properly |
TM_ECODE_FAILED | failure |
Definition at line 1947 of file tm-threads.c.
References ThreadVars_::name, ThreadVars_::next, SC_ATOMIC_GET, SCLogError, SCMutexLock, SCMutexUnlock, SleepUsec, THV_CLOSED, THV_DEAD, THV_FAILED, THV_INIT_DONE, TM_ECODE_FAILED, TM_ECODE_OK, TmThreadsCheckFlag(), tv, tv_root, tv_root_lock, and TVT_MAX.
Referenced by SuricataPostInit().
TmEcode TmThreadWaitOnThreadRunning | ( | void | ) |
Waits for all threads to be in a running state.
TM_ECODE_OK | if all are running or error if a thread failed |
Definition at line 1839 of file tm-threads.c.
References TVT_MAX.
Referenced by SuricataPostInit().
ThreadVars* tv_root[TVT_MAX] |
Definition at line 82 of file tm-threads.c.
Referenced by FlowDisableFlowManagerThread(), TmThreadAppend(), TmThreadCheckThreadState(), TmThreadClearThreadsFamily(), TmThreadContinueDetectLoaderThreads(), TmThreadContinueThreads(), TmThreadCountThreadsByTmmFlags(), TmThreadDisableReceiveThreads(), TmThreadKillThreadsFamily(), and TmThreadWaitOnThreadInit().
SCMutex tv_root_lock |
Definition at line 85 of file tm-threads.c.
Referenced by FlowDisableFlowManagerThread(), TmThreadAppend(), TmThreadCheckThreadState(), TmThreadClearThreadsFamily(), TmThreadContinueDetectLoaderThreads(), TmThreadContinueThreads(), TmThreadCountThreadsByTmmFlags(), TmThreadDisableReceiveThreads(), TmThreadKillThreadsFamily(), and TmThreadWaitOnThreadInit().