From 4e42a3adb1f93152260af60fc6940ec671b623de Mon Sep 17 00:00:00 2001 From: Alex Szpakowski Date: Wed, 10 Dec 2014 19:11:06 -0400 Subject: [PATCH] Slightly less verbose atomic reference counting code. --HG-- branch : minor --- src/common/Object.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/common/Object.cpp b/src/common/Object.cpp index 31ed9dbba..5235e995c 100644 --- a/src/common/Object.cpp +++ b/src/common/Object.cpp @@ -30,8 +30,7 @@ Object::Object() } Object::Object(const Object & /*other*/) - // New objects should always have a reference count of 1. - : count(1) + : count(1) // Always start with a reference count of 1. { } @@ -46,13 +45,13 @@ int Object::getReferenceCount() const void Object::retain() { - std::atomic_fetch_add_explicit(&count, 1, std::memory_order_relaxed); + count.fetch_add(1, std::memory_order_relaxed); } void Object::release() { // http://www.boost.org/doc/libs/1_56_0/doc/html/atomic/usage_examples.html - if (std::atomic_fetch_sub_explicit(&count, 1, std::memory_order_release) == 1) + if (count.fetch_sub(1, std::memory_order_release) == 1) { std::atomic_thread_fence(std::memory_order_acquire); delete this;