From 52aac4c75623a7ef68a02f863818d7c7a5a89dca Mon Sep 17 00:00:00 2001 From: Kevin Bracey Date: Fri, 1 Feb 2019 12:31:41 +0200 Subject: [PATCH] SharedPtr: use atomic load Use atomic load to read use count. --- platform/SharedPtr.h | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/platform/SharedPtr.h b/platform/SharedPtr.h index 0663b2147d..79e37901e7 100644 --- a/platform/SharedPtr.h +++ b/platform/SharedPtr.h @@ -177,10 +177,7 @@ public: uint32_t use_count() const { if (_ptr != NULL) { - core_util_critical_section_enter(); - uint32_t current_counter = *_counter; - core_util_critical_section_exit(); - return current_counter; + return core_util_atomic_load_u32(_counter); } else { return 0; } @@ -230,8 +227,7 @@ private: void decrement_counter() { if (_ptr != NULL) { - uint32_t new_value = core_util_atomic_decr_u32(_counter, 1); - if (new_value == 0) { + if (core_util_atomic_decr_u32(_counter, 1) == 0) { delete _counter; _counter = NULL; delete _ptr;