EpcTools
An event based multi-threaded C++ development framework.
|
Macros for performing CPU atomic/interlaced operations. More...
Go to the source code of this file.
Macros | |
#define | atomic_dec(a) __sync_sub_and_fetch(&a, 1) |
atomic decrement - decrements a by 1 More... | |
#define | atomic_inc(a) __sync_add_and_fetch(&a, 1) |
atomic increment - increments a by 1 More... | |
#define | atomic_dec_fetch(a) __sync_sub_and_fetch(&a, 1) |
atomic decrement - decrements a by 1 More... | |
#define | atomic_inc_fetch(a) __sync_add_and_fetch(&a, 1) |
atomic increment - increments a by 1 More... | |
#define | atomic_fetch_dec(a) __sync_fetch_and_sub(&a, 1) |
atomic decrement - decrements a by 1 More... | |
#define | atomic_fetch_inc(a) __sync_fetch_and_add(&a, 1) |
atomic increment - increments a by 1 More... | |
#define | atomic_cas(a, b, c) __sync_val_compare_and_swap(&a, b, c) |
atomic compare and swap - if a equals b then a is replaced with c More... | |
#define | atomic_swap(a, b) __sync_lock_test_and_set(&a, b) |
atomic swap - replaces a with b More... | |
#define | atomic_and(a, b) __sync_fetch_and_and(&a, b) |
atomic and - performs a logical and between a and b putting the result in a More... | |
#define | atomic_or(a, b) __sync_fetch_and_or(&a, b) |
atomic or - performs a logical or between a and b putting the result in a More... | |
#define | atomic_set(a, b) __sync_lock_test_and_set(&a, b) |
atomic set - replaces a with b More... | |
Macros for performing CPU atomic/interlaced operations.
#define atomic_and | ( | a, | |
b | |||
) | __sync_fetch_and_and(&a, b) |
atomic and - performs a logical and between a and b putting the result in a
#define atomic_cas | ( | a, | |
b, | |||
c | |||
) | __sync_val_compare_and_swap(&a, b, c) |
atomic compare and swap - if a equals b then a is replaced with c
#define atomic_dec | ( | a | ) | __sync_sub_and_fetch(&a, 1) |
atomic decrement - decrements a by 1
#define atomic_dec_fetch | ( | a | ) | __sync_sub_and_fetch(&a, 1) |
atomic decrement - decrements a by 1
#define atomic_fetch_dec | ( | a | ) | __sync_fetch_and_sub(&a, 1) |
atomic decrement - decrements a by 1
#define atomic_fetch_inc | ( | a | ) | __sync_fetch_and_add(&a, 1) |
atomic increment - increments a by 1
#define atomic_inc | ( | a | ) | __sync_add_and_fetch(&a, 1) |
atomic increment - increments a by 1
#define atomic_inc_fetch | ( | a | ) | __sync_add_and_fetch(&a, 1) |
atomic increment - increments a by 1
#define atomic_or | ( | a, | |
b | |||
) | __sync_fetch_and_or(&a, b) |
atomic or - performs a logical or between a and b putting the result in a
#define atomic_set | ( | a, | |
b | |||
) | __sync_lock_test_and_set(&a, b) |
atomic set - replaces a with b
#define atomic_swap | ( | a, | |
b | |||
) | __sync_lock_test_and_set(&a, b) |
atomic swap - replaces a with b