diff options
author | Petri Savolainen <petri.savolainen@nokia.com> | 2016-01-29 13:25:39 +0200 |
---|---|---|
committer | Maxim Uvarov <maxim.uvarov@linaro.org> | 2016-02-08 20:45:25 +0300 |
commit | 0697cf565982f2e088f8273a4b82654b78e7f72b (patch) | |
tree | c1a0d866815b09d0618023e957e0d9c7af2c6380 /platform | |
parent | f11439856b733d6d25c9888066094dc7af10776b (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.c | 4 |
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 |