From a452d37f3f64b8e4cc3d58980921e36b24f84af7 Mon Sep 17 00:00:00 2001 From: Alex Lisitsyn Date: Tue, 10 Jun 2025 06:51:20 +0100 Subject: [PATCH] object counter ensure atomic operation --- modbus/mb_ports/common/port_other.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/modbus/mb_ports/common/port_other.c b/modbus/mb_ports/common/port_other.c index 7da783b..51d3925 100644 --- a/modbus/mb_ports/common/port_other.c +++ b/modbus/mb_ports/common/port_other.c @@ -39,16 +39,12 @@ uint32_t mb_port_get_inst_counter() uint32_t mb_port_get_inst_counter_inc() { - uint32_t counter = atomic_load(&inst_counter); - atomic_store(&inst_counter, (counter + 1)); - return counter; + return atomic_fetch_add(&inst_counter, 1); } uint32_t mb_port_get_inst_counter_dec() { - uint32_t counter = atomic_load(&inst_counter); - atomic_store(&inst_counter, (counter - 1)); - return counter; + return atomic_fetch_sub(&inst_counter, 1); } QueueHandle_t queue_create(int queue_size)