]> git.proxmox.com Git - mirror_frr.git/commitdiff
lib: add cmpxchg_strong to frratomic.h
authorDavid Lamparter <equinox@opensourcerouting.org>
Tue, 18 Sep 2018 16:38:49 +0000 (18:38 +0200)
committerDavid Lamparter <equinox@diac24.net>
Thu, 18 Apr 2019 10:44:29 +0000 (12:44 +0200)
Signed-off-by: David Lamparter <equinox@diac24.net>
lib/frratomic.h

index e86030f83c7c0109860e51f15e997f67a06118af..1e28253f2b2ea9e6c7688692dd5261a1b296b3ba 100644 (file)
@@ -80,6 +80,9 @@ typedef std::atomic<uint_fast32_t>    atomic_uint_fast32_t;
 #define atomic_compare_exchange_weak_explicit(atom, expect, desire, mem1,      \
                                              mem2)                            \
        __atomic_compare_exchange_n(atom, expect, desire, 1, mem1, mem2)
+#define atomic_compare_exchange_strong_explicit(atom, expect, desire, mem1,    \
+                                             mem2)                            \
+       __atomic_compare_exchange_n(atom, expect, desire, 0, mem1, mem2)
 
 /* gcc 4.1 and newer,
  * clang 3.3 (possibly older)
@@ -152,7 +155,7 @@ typedef std::atomic<uint_fast32_t>  atomic_uint_fast32_t;
                rval;                                                          \
        })
 
-#define atomic_compare_exchange_weak_explicit(atom, expect, desire, mem1,      \
+#define atomic_compare_exchange_strong_explicit(atom, expect, desire, mem1,    \
                                              mem2)                            \
        ({                                                                     \
                typeof(atom) _atom = (atom);                                   \
@@ -166,6 +169,8 @@ typedef std::atomic<uint_fast32_t>  atomic_uint_fast32_t;
                *_expect = rval;                                               \
                ret;                                                           \
        })
+#define atomic_compare_exchange_weak_explicit \
+       atomic_compare_exchange_strong_explicit
 
 #define atomic_fetch_and_explicit(ptr, val, mem)                               \
        ({                                                                     \