#define CAS __sync_bool_compare_and_swap
bool __sync_bool_compare_and_swap (
type *ptr,
type oldval
type newval, ...)
type __sync_val_compare_and_swap (
type *ptr,
type oldval
type newval, ...)
These builtins perform an atomic compare and swap. That is, if the current value of *
ptr is oldval, then write newval into *
ptr.The “bool” version returns true if the comparison is successful and newval was written. The “val” version returns the contents of *
ptr before the operation.
static inline void my_spinlock(unsigned int *lock){
while (!CAS(lock, 0, 1));
}
static inline void my_spinunlock(unsigned int *lock) {
*lock = 0;
//CAS(lock, 1, 0);
}
No comments:
Post a Comment