From c6d2d1f474a83fcf3312a17b041db344236fa0fe Mon Sep 17 00:00:00 2001 From: alvin1221 <68314044+alvin1221@users.noreply.github.com> Date: Mon, 30 May 2022 11:00:57 +0800 Subject: fixes #1586 Undefined reference to nni_atomic_swap & nni_atomic_cas(Built by gcc 4.8.5 ). (#1587) --- src/platform/posix/posix_atomic.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/platform/posix') diff --git a/src/platform/posix/posix_atomic.c b/src/platform/posix/posix_atomic.c index 0f904ae1..60875845 100644 --- a/src/platform/posix/posix_atomic.c +++ b/src/platform/posix/posix_atomic.c @@ -284,6 +284,12 @@ nni_atomic_cas64(nni_atomic_u64 *v, uint64_t comp, uint64_t new) &v->v, &comp, new, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)); } +int +nni_atomic_swap(nni_atomic_int *v, int u) +{ + return (__atomic_exchange_n(&v->v, u, __ATOMIC_SEQ_CST)); +} + void nni_atomic_init(nni_atomic_int *v) { @@ -331,6 +337,13 @@ nni_atomic_dec_nv(nni_atomic_int *v) return (__atomic_sub_fetch(&v->v, 1, __ATOMIC_SEQ_CST)); } +bool +nni_atomic_cas(nni_atomic_int *v, int comp, int new) +{ + return (__atomic_compare_exchange_n( + &v->v, &comp, new, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)); +} + void * nni_atomic_get_ptr(nni_atomic_ptr *v) { -- cgit v1.2.3-70-g09d2