17INLINE
void AtomicAdjustPosixImpl::
18inc(TVOLATILE AtomicAdjustPosixImpl::Integer &var) {
19 pthread_mutex_lock(&_mutex);
21 pthread_mutex_unlock(&_mutex);
28INLINE
bool AtomicAdjustPosixImpl::
29dec(TVOLATILE AtomicAdjustPosixImpl::Integer &var) {
30 pthread_mutex_lock(&_mutex);
31 Integer result = --var;
32 pthread_mutex_unlock(&_mutex);
40INLINE AtomicAdjustPosixImpl::Integer AtomicAdjustPosixImpl::
41add(TVOLATILE AtomicAdjustPosixImpl::Integer &var,
42 AtomicAdjustPosixImpl::Integer delta) {
43 pthread_mutex_lock(&_mutex);
44 Integer new_value = var + delta;
46 pthread_mutex_unlock(&_mutex);
53INLINE AtomicAdjustPosixImpl::Integer AtomicAdjustPosixImpl::
54set(TVOLATILE AtomicAdjustPosixImpl::Integer &var,
55 AtomicAdjustPosixImpl::Integer new_value) {
56 pthread_mutex_lock(&_mutex);
57 Integer orig_value = var;
59 pthread_mutex_unlock(&_mutex);
69INLINE AtomicAdjustPosixImpl::Integer AtomicAdjustPosixImpl::
70get(
const TVOLATILE AtomicAdjustPosixImpl::Integer &var) {
71 pthread_mutex_lock(&_mutex);
72 Integer orig_value = var;
73 pthread_mutex_unlock(&_mutex);
80INLINE AtomicAdjustPosixImpl::Pointer AtomicAdjustPosixImpl::
81set_ptr(TVOLATILE AtomicAdjustPosixImpl::Pointer &var,
82 AtomicAdjustPosixImpl::Pointer new_value) {
83 pthread_mutex_lock(&_mutex);
84 Pointer orig_value = var;
86 pthread_mutex_unlock(&_mutex);
96INLINE AtomicAdjustPosixImpl::Pointer AtomicAdjustPosixImpl::
97get_ptr(
const TVOLATILE AtomicAdjustPosixImpl::Pointer &var) {
98 pthread_mutex_lock(&_mutex);
99 Pointer orig_value = var;
100 pthread_mutex_unlock(&_mutex);
117INLINE AtomicAdjustPosixImpl::Integer AtomicAdjustPosixImpl::
118compare_and_exchange(TVOLATILE AtomicAdjustPosixImpl::Integer &mem,
119 AtomicAdjustPosixImpl::Integer old_value,
120 AtomicAdjustPosixImpl::Integer new_value) {
121 pthread_mutex_lock(&_mutex);
122 Integer orig_value = mem;
123 if (mem == old_value) {
126 pthread_mutex_unlock(&_mutex);
135INLINE AtomicAdjustPosixImpl::Pointer AtomicAdjustPosixImpl::
136compare_and_exchange_ptr(TVOLATILE AtomicAdjustPosixImpl::Pointer &mem,
137 AtomicAdjustPosixImpl::Pointer old_value,
138 AtomicAdjustPosixImpl::Pointer new_value) {
139 pthread_mutex_lock(&_mutex);
140 Pointer orig_value = mem;
141 if (mem == old_value) {
144 pthread_mutex_unlock(&_mutex);