From: Joyce Kong <joyce.k...@arm.com>

Convert rte_atomic32_test_and_set to compiler CAS atomic
operation for display_stats sync.

Signed-off-by: Joyce Kong <joyce.k...@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.w...@arm.com>
---
 examples/server_node_efd/server/main.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/examples/server_node_efd/server/main.c 
b/examples/server_node_efd/server/main.c
index 0d0d5679e4c4..fd72882e3a1c 100644
--- a/examples/server_node_efd/server/main.c
+++ b/examples/server_node_efd/server/main.c
@@ -22,7 +22,6 @@
 #include <rte_per_lcore.h>
 #include <rte_lcore.h>
 #include <rte_branch_prediction.h>
-#include <rte_atomic.h>
 #include <rte_ring.h>
 #include <rte_log.h>
 #include <rte_debug.h>
@@ -178,10 +177,12 @@ static int
 sleep_lcore(__rte_unused void *dummy)
 {
        /* Used to pick a display thread - static, so zero-initialised */
-       static rte_atomic32_t display_stats;
+       static uint32_t display_stats;
 
        /* Only one core should display stats */
-       if (rte_atomic32_test_and_set(&display_stats)) {
+       uint32_t display_init = 0;
+       if (__atomic_compare_exchange_n(&display_stats, &display_init, 1, 0,
+                       __ATOMIC_RELAXED, __ATOMIC_RELAXED)) {
                const unsigned int sleeptime = 1;
 
                printf("Core %u displaying statistics\n", rte_lcore_id());
-- 
2.25.1

Reply via email to