21 INLINE
void AtomicAdjustPosixImpl::
22 inc(TVOLATILE AtomicAdjustPosixImpl::Integer &var) {
23 pthread_mutex_lock(&_mutex);
25 pthread_mutex_unlock(&_mutex);
35 INLINE
bool AtomicAdjustPosixImpl::
36 dec(TVOLATILE AtomicAdjustPosixImpl::Integer &var) {
37 pthread_mutex_lock(&_mutex);
38 Integer result = --var;
39 pthread_mutex_unlock(&_mutex);
49 INLINE
void AtomicAdjustPosixImpl::
50 add(TVOLATILE AtomicAdjustPosixImpl::Integer &var,
51 AtomicAdjustPosixImpl::Integer delta) {
52 pthread_mutex_lock(&_mutex);
54 pthread_mutex_unlock(&_mutex);
63 INLINE AtomicAdjustPosixImpl::Integer AtomicAdjustPosixImpl::
64 set(TVOLATILE AtomicAdjustPosixImpl::Integer &var,
65 AtomicAdjustPosixImpl::Integer new_value) {
66 pthread_mutex_lock(&_mutex);
67 Integer orig_value = var;
69 pthread_mutex_unlock(&_mutex);
82 INLINE AtomicAdjustPosixImpl::Integer AtomicAdjustPosixImpl::
83 get(
const TVOLATILE AtomicAdjustPosixImpl::Integer &var) {
84 pthread_mutex_lock(&_mutex);
85 Integer orig_value = var;
86 pthread_mutex_unlock(&_mutex);
96 INLINE AtomicAdjustPosixImpl::Pointer AtomicAdjustPosixImpl::
97 set_ptr(TVOLATILE AtomicAdjustPosixImpl::Pointer &var,
98 AtomicAdjustPosixImpl::Pointer new_value) {
99 pthread_mutex_lock(&_mutex);
100 Pointer orig_value = var;
102 pthread_mutex_unlock(&_mutex);
115 INLINE AtomicAdjustPosixImpl::Pointer AtomicAdjustPosixImpl::
116 get_ptr(
const TVOLATILE AtomicAdjustPosixImpl::Pointer &var) {
117 pthread_mutex_lock(&_mutex);
118 Pointer orig_value = var;
119 pthread_mutex_unlock(&_mutex);
142 INLINE AtomicAdjustPosixImpl::Integer AtomicAdjustPosixImpl::
143 compare_and_exchange(TVOLATILE AtomicAdjustPosixImpl::Integer &mem,
144 AtomicAdjustPosixImpl::Integer old_value,
145 AtomicAdjustPosixImpl::Integer new_value) {
146 pthread_mutex_lock(&_mutex);
147 Integer orig_value = mem;
148 if (mem == old_value) {
151 pthread_mutex_unlock(&_mutex);
162 INLINE AtomicAdjustPosixImpl::Pointer AtomicAdjustPosixImpl::
163 compare_and_exchange_ptr(TVOLATILE AtomicAdjustPosixImpl::Pointer &mem,
164 AtomicAdjustPosixImpl::Pointer old_value,
165 AtomicAdjustPosixImpl::Pointer new_value) {
166 pthread_mutex_lock(&_mutex);
167 Pointer orig_value = mem;
168 if (mem == old_value) {
171 pthread_mutex_unlock(&_mutex);