Merge pull request #14001 from kjbracey-arm/mbed-os-atomic

Add missing retry to atomic exchange
pull/13959/head
Martin Kojtal 2020-12-09 13:29:56 +00:00 committed by GitHub
commit 9662e409db
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 6 additions and 2 deletions

View File

@ -346,7 +346,9 @@ inline T core_util_atomic_exchange_##fn_suffix(volatile T *valuePtr, T newValue)
T oldValue; \
uint32_t fail; \
MBED_BARRIER(); \
DO_MBED_LOCKFREE_EXCHG_ASM(M); \
do { \
DO_MBED_LOCKFREE_EXCHG_ASM(M); \
} while (fail); \
MBED_BARRIER(); \
return oldValue; \
} \
@ -357,7 +359,9 @@ MBED_FORCEINLINE T core_util_atomic_exchange_explicit_##fn_suffix(
T oldValue; \
uint32_t fail; \
MBED_RELEASE_BARRIER(order); \
DO_MBED_LOCKFREE_EXCHG_ASM(M); \
do { \
DO_MBED_LOCKFREE_EXCHG_ASM(M); \
} while (fail); \
MBED_ACQUIRE_BARRIER(order); \
return oldValue; \
}