profiling/rules: use atomics for rule flag

pull/8879/head
Victor Julien 2 years ago
parent 3de687f30c
commit 2596dc262b

@ -1421,13 +1421,14 @@ thread_local int profiling_rules_entered = 0;
int profiling_output_to_file = 0;
static SC_ATOMIC_DECLARE(uint64_t, samples);
static uint64_t rate = 0;
int profiling_rules_active = 0;
static SC_ATOMIC_DECLARE(bool, profiling_rules_active);
/**
* \brief Initialize profiling.
*/
void SCProfilingInit(void)
{
SC_ATOMIC_INIT(profiling_rules_active);
SC_ATOMIC_INIT(samples);
intmax_t rate_v = 0;
@ -1451,7 +1452,7 @@ void SCProfilingInit(void)
/* see if we want to profile rules for this packet */
int SCProfileRuleStart(Packet *p)
{
if (profiling_rules_active != 1) {
if (!SC_ATOMIC_GET(profiling_rules_active)) {
return 0;
}
uint64_t sample = SC_ATOMIC_ADD(samples, 1);
@ -1467,13 +1468,13 @@ int SCProfileRuleStart(Packet *p)
int SCProfileRuleStartCollection(void)
{
profiling_rules_active = 1;
SC_ATOMIC_SET(profiling_rules_active, true);
SCReturnInt(TM_ECODE_OK);
}
int SCProfileRuleStopCollection(void)
{
profiling_rules_active = 0;
SC_ATOMIC_SET(profiling_rules_active, false);
SCReturnInt(TM_ECODE_OK);
}

Loading…
Cancel
Save