From 5c0c0f95a80c09d7c42438d365c5e1e1d79f6a66 Mon Sep 17 00:00:00 2001 From: Danila Klimenko Date: Tue, 16 Jun 2015 15:02:29 +0200 Subject: [PATCH] The "expected" value is now atomically returned from "AtomicBase<>::CompareAndSwap". --- base_cpp/include/embb/base/internal/atomic/atomic_base.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/base_cpp/include/embb/base/internal/atomic/atomic_base.h b/base_cpp/include/embb/base/internal/atomic/atomic_base.h index 258a686..1be01e5 100644 --- a/base_cpp/include/embb/base/internal/atomic/atomic_base.h +++ b/base_cpp/include/embb/base/internal/atomic/atomic_base.h @@ -177,8 +177,7 @@ CompareAndSwap(BaseType& expected, BaseType desired) { compare_and_swap(&AtomicValue, &native_expected, native_desired)) !=0 ? true : false; - if (!return_val) - expected = Load(); + memcpy(&expected, &native_expected, sizeof(expected)); return return_val; } -- libgit2 0.26.0