diff --git a/src/threadvars.h b/src/threadvars.h index 293322d9bc..c589cc4c59 100644 --- a/src/threadvars.h +++ b/src/threadvars.h @@ -66,12 +66,12 @@ typedef struct ThreadVars_ { when it encounters certain conditions like failures */ uint8_t aof; - /** the type of thread as defined in tm-threads.h (TVT_PPT, TVT_MGMT) */ - uint8_t type; - /** no of times the thread has been restarted on failure */ uint8_t restarted; + /** local id */ + int id; + /** queue's */ Tmq *inq; Tmq *outq; @@ -88,6 +88,10 @@ typedef struct ThreadVars_ { struct TmSlot_ *tm_slots; uint8_t thread_setup_flags; + + /** the type of thread as defined in tm-threads.h (TVT_PPT, TVT_MGMT) */ + uint8_t type; + uint16_t cpu_affinity; /** cpu or core number to set affinity to */ int thread_priority; /** priority (real time) for this thread. Look at threads.h */ diff --git a/src/tm-threads.c b/src/tm-threads.c index 22bb04542d..932d034ddd 100644 --- a/src/tm-threads.c +++ b/src/tm-threads.c @@ -83,6 +83,10 @@ SCMutex tv_root_lock = PTHREAD_MUTEX_INITIALIZER; * thread encounters a failure. Defaults to restart the failed thread */ uint8_t tv_aof = THV_RESTART_THREAD; +/** Counter for number of threadvar structs, so the number of threads we + * have. */ +int g_threadvars_cnt = 0; + /** * \brief Check if a thread flag is set. * @@ -1354,6 +1358,7 @@ ThreadVars *TmThreadCreate(char *name, char *inq_name, char *inqh_name, SC_ATOMIC_INIT(tv->flags); SCMutexInit(&tv->sc_perf_pctx.m, NULL); + tv->id = g_threadvars_cnt++; tv->name = name; /* default state for every newly created thread */ TmThreadsSetFlag(tv, THV_PAUSE); @@ -1886,7 +1891,6 @@ TmEcode TmThreadSpawn(ThreadVars *tv) TmThreadWaitForFlag(tv, THV_INIT_DONE | THV_RUNNING_DONE); TmThreadAppend(tv, tv->type); - return TM_ECODE_OK; }