From cd1de6e1806b80e55ec3e0b9f9c31305c9d42be2 Mon Sep 17 00:00:00 2001 From: baldurk Date: Sun, 7 Dec 2014 14:47:08 +0000 Subject: [PATCH] Fix semantics for atomic operations on linux (return result of op) --- renderdoc/os/linux/linux_threading.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/renderdoc/os/linux/linux_threading.cpp b/renderdoc/os/linux/linux_threading.cpp index d2e5bbc19..8e8859788 100644 --- a/renderdoc/os/linux/linux_threading.cpp +++ b/renderdoc/os/linux/linux_threading.cpp @@ -49,17 +49,17 @@ namespace Atomic { int32_t Inc32(volatile int32_t *i) { - return __sync_fetch_and_add(i, int32_t(1)); + return __sync_add_and_fetch(i, int32_t(1)); } int64_t Inc64(volatile int64_t *i) { - return __sync_fetch_and_add(i, int64_t(1)); + return __sync_add_and_fetch(i, int64_t(1)); } int64_t Dec64(volatile int64_t *i) { - return __sync_fetch_and_add(i, int64_t(-1)); + return __sync_add_and_fetch(i, int64_t(-1)); } int64_t ExchAdd64(volatile int64_t *i, int64_t a)