]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
profiling/rules: use atomics for rule flag
authorVictor Julien <vjulien@oisf.net>
Fri, 12 May 2023 12:08:44 +0000 (14:08 +0200)
committerVictor Julien <vjulien@oisf.net>
Fri, 12 May 2023 17:52:15 +0000 (19:52 +0200)
src/util-profiling.c

index 9c531d183c980c1fd25de4cd423d3c40b7c819d7..f412f079109170fa9b987c39a09ca28b6bfe8ad7 100644 (file)
@@ -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);
 }