- inline bool atomic_cas(void * volatile *dest, void *oldval, void *newval)
- {
- #if defined(_LINUX)
- return __sync_val_compare_and_swap(dest, oldval, newval);
- #elif defined(WINDOWS)
- return InterlockedCompareExchangePointer(dest, newval, oldval) == oldval;
- #else
- # error platform not supported!
- #endif
}