aboutsummaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
authorPetri Savolainen <petri.savolainen@nokia.com>2016-01-29 13:25:39 +0200
committerMaxim Uvarov <maxim.uvarov@linaro.org>2016-02-08 20:45:25 +0300
commit0697cf565982f2e088f8273a4b82654b78e7f72b (patch)
treec1a0d866815b09d0618023e957e0d9c7af2c6380 /platform
parentf11439856b733d6d25c9888066094dc7af10776b (diff)
api: atomic: init functions are not atomic
Highlight that application must ensure that there's no race while calling init functions. Also lock free call will never set op.init flag, since init call will not need to implement locking or other (lock free) synchronization. Signed-off-by: Petri Savolainen <petri.savolainen@nokia.com> Reviewed-and-tested-by: Bill Fischofer <bill.fischofer@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
Diffstat (limited to 'platform')
-rw-r--r--platform/linux-generic/odp_atomic.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/platform/linux-generic/odp_atomic.c b/platform/linux-generic/odp_atomic.c
index 996d09a00..5b71ecff3 100644
--- a/platform/linux-generic/odp_atomic.c
+++ b/platform/linux-generic/odp_atomic.c
@@ -16,8 +16,10 @@ int odp_atomic_lock_free_u64(odp_atomic_op_t *atomic_op)
return 0;
#else
/* All operations are lock-free */
- if (atomic_op)
+ if (atomic_op) {
atomic_op->all_bits = ~((uint32_t)0);
+ atomic_op->op.init = 0;
+ }
return 2;
#endif