forked from OSchip/llvm-project
parent
5b9400d6bd
commit
76ae5dde51
|
@ -35,8 +35,8 @@ void sys::MemoryFence() {
|
|||
}
|
||||
|
||||
sys::cas_flag sys::CompareAndSwap(volatile sys::cas_flag* ptr,
|
||||
sys::cas_flag new_value,
|
||||
sys::cas_flag old_value) {
|
||||
sys::cas_flag new_value,
|
||||
sys::cas_flag old_value) {
|
||||
#if LLVM_MULTITHREADED==0
|
||||
sys::cas_flag result = *ptr;
|
||||
if (result == old_value)
|
||||
|
@ -45,7 +45,7 @@ sys::cas_flag sys::CompareAndSwap(volatile sys::cas_flag* ptr,
|
|||
#elif defined(__GNUC__)
|
||||
return __sync_val_compare_and_swap(ptr, old_value, new_value);
|
||||
#elif defined(_MSC_VER)
|
||||
return InterlockedCompareExchange(ptr, new_value, old_value);
|
||||
return InterlockedCompareExchange(ptr, new_value, old_value);
|
||||
#else
|
||||
# error No compare-and-swap implementation for your platform!
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue