As part of
6d8b50b748844e9de6010cde5a6b139148c0e937, the settings of
THV_CAPTURE_INJECT_PKT ended up in a location unreachable by capture
methods that did not have PktAcqBreakLoop.
Instead, always call TmThreadsCaptureBreakLoop which handles the logic
for how the read loop should be broken.
This fixes the case where read threads won't "break" for rule reloads
until packets are seen.
Ticket: #6021
(cherry picked from commit
1c6644ef4eda43e7b14447b18409e8b35f59344d)
if (SC_ATOMIC_GET(new_det_ctx[i]->so_far_used_by_detect) == 1) {
SCLogDebug("new_det_ctx - %p used by detect engine", new_det_ctx[i]);
threads_done++;
- } else if (detect_tvs[i]->break_loop) {
+ } else {
TmThreadsCaptureBreakLoop(detect_tvs[i]);
}
}
static inline void TmThreadsCaptureBreakLoop(ThreadVars *tv)
{
- if (unlikely(!tv->break_loop))
- return;
-
if ((tv->tmm_flags & TM_FLAG_RECEIVE_TM) == 0) {
return;
}