10#define BAtomicCount_H 1 19 return __sync_fetch_and_add(&ovalue, 0);
22 return __sync_fetch_and_add(&ovalue, value) + value;
25 return __sync_fetch_and_add(&ovalue, 1);
28 return __sync_fetch_and_add(&ovalue, 1) + 1;
31 return __sync_fetch_and_add(&ovalue, -1);
34 return __sync_fetch_and_add(&ovalue, -1) - 1;
36 operator long()
const {
43#if __GNUC__ >= 5 || __GNUC_MINOR__ >= 4 44#include <ext/atomicity.h> 46#include <bits/atomicity.h> 55 return __gnu_cxx::__exchange_and_add(&ovalue, 0);
58 return __gnu_cxx::__exchange_and_add(&ovalue, value) + value;
61 return __gnu_cxx::__exchange_and_add(&ovalue, 1);
64 return __gnu_cxx::__exchange_and_add(&ovalue, 1) + 1;
67 return __gnu_cxx::__exchange_and_add(&ovalue, -1);
70 return __gnu_cxx::__exchange_and_add(&ovalue, -1) - 1;
72 operator long()
const {
76 mutable _Atomic_word ovalue;
BAtomicCount class.
Definition BAtomicCount.h:50
long getValue() const
Definition BAtomicCount.h:54
long operator--(int)
Definition BAtomicCount.h:66
long operator++()
Definition BAtomicCount.h:63
long operator++(int)
Definition BAtomicCount.h:60
long add(long value)
Definition BAtomicCount.h:57
long operator--()
Definition BAtomicCount.h:69
BAtomicCount(long value=0)
Definition BAtomicCount.h:52