From e5192ae20a7b39c162b410b3f4cf494e45652975 Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Sun, 3 Nov 2019 15:47:01 +0100 Subject: [PATCH] threading: TmSlot::SlotFunc does not need to be atomic --- src/tm-threads.c | 8 +++----- src/tm-threads.h | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/tm-threads.c b/src/tm-threads.c index 067f426781..7177b41622 100644 --- a/src/tm-threads.c +++ b/src/tm-threads.c @@ -116,14 +116,13 @@ TmEcode TmThreadsSlotVarRun(ThreadVars *tv, Packet *p, TmSlot *slot) { for (TmSlot *s = slot; s != NULL; s = s->slot_next) { - TmSlotFunc SlotFunc = SC_ATOMIC_GET(s->SlotFunc); PACKET_PROFILING_TMM_START(p, s->tm_id); TmEcode r; if (unlikely(s->id == 0)) { - r = SlotFunc(tv, p, SC_ATOMIC_GET(s->slot_data), &s->slot_pre_pq, &s->slot_post_pq); + r = s->SlotFunc(tv, p, SC_ATOMIC_GET(s->slot_data), &s->slot_pre_pq, &s->slot_post_pq); } else { - r = SlotFunc(tv, p, SC_ATOMIC_GET(s->slot_data), &s->slot_pre_pq, NULL); + r = s->SlotFunc(tv, p, SC_ATOMIC_GET(s->slot_data), &s->slot_pre_pq, NULL); } PACKET_PROFILING_TMM_END(p, s->tm_id); @@ -836,8 +835,7 @@ void TmSlotSetFuncAppend(ThreadVars *tv, TmModule *tm, const void *data) slot->tv = tv; slot->SlotThreadInit = tm->ThreadInit; slot->slot_initdata = data; - SC_ATOMIC_INIT(slot->SlotFunc); - (void)SC_ATOMIC_SET(slot->SlotFunc, tm->Func); + slot->SlotFunc = tm->Func; slot->PktAcqLoop = tm->PktAcqLoop; slot->Management = tm->Management; slot->SlotThreadExitPrintStats = tm->ThreadExitPrintStats; diff --git a/src/tm-threads.h b/src/tm-threads.h index 3ad5b0e4ce..5f8ff1d13b 100644 --- a/src/tm-threads.h +++ b/src/tm-threads.h @@ -55,7 +55,7 @@ typedef struct TmSlot_ { ThreadVars *tv; /* function pointers */ - SC_ATOMIC_DECLARE(TmSlotFunc, SlotFunc); + TmSlotFunc SlotFunc; TmEcode (*PktAcqLoop)(ThreadVars *, void *, void *);