141
#define __TBB_DECL_ATOMIC(T) \
150
#define __DRIZZLE_DECL_ATOMIC(T) \
142
151
template<> struct atomic<T> \
143
152
: internal::atomic_impl<T,T,ATOMIC_TRAITS<T,T> > { \
144
153
atomic<T>() : internal::atomic_impl<T,T,ATOMIC_TRAITS<T,T> >() {} \
149
__TBB_DECL_ATOMIC(long)
150
__TBB_DECL_ATOMIC(unsigned long)
151
__TBB_DECL_ATOMIC(unsigned int)
152
__TBB_DECL_ATOMIC(int)
153
__TBB_DECL_ATOMIC(unsigned short)
154
__TBB_DECL_ATOMIC(short)
155
__TBB_DECL_ATOMIC(char)
156
__TBB_DECL_ATOMIC(signed char)
157
__TBB_DECL_ATOMIC(unsigned char)
158
__TBB_DECL_ATOMIC(bool)
158
__DRIZZLE_DECL_ATOMIC(long)
159
__DRIZZLE_DECL_ATOMIC(unsigned long)
160
__DRIZZLE_DECL_ATOMIC(unsigned int)
161
__DRIZZLE_DECL_ATOMIC(int)
162
__DRIZZLE_DECL_ATOMIC(unsigned short)
163
__DRIZZLE_DECL_ATOMIC(short)
164
__DRIZZLE_DECL_ATOMIC(char)
165
__DRIZZLE_DECL_ATOMIC(signed char)
166
__DRIZZLE_DECL_ATOMIC(unsigned char)
167
__DRIZZLE_DECL_ATOMIC(bool)
160
169
/* 32-bit platforms don't have a GCC atomic operation for 64-bit types,
161
170
* so we'll use pthread locks to handler 64-bit types on that platforms
163
172
# if SIZEOF_SIZE_T >= SIZEOF_LONG_LONG
164
__TBB_DECL_ATOMIC(long long)
165
__TBB_DECL_ATOMIC(unsigned long long)
173
__DRIZZLE_DECL_ATOMIC(long long)
174
__DRIZZLE_DECL_ATOMIC(unsigned long long)
167
# define __TBB_DECL_ATOMIC64(T) \
176
# define __DRIZZLE_DECL_ATOMIC64(T) \
168
177
template<> struct atomic<T> \
169
: internal::atomic_impl<T,T,internal::pthread_traits<T,T> > { \
170
atomic<T>() : internal::atomic_impl<T,T,internal::pthread_traits<T,T> >() {} \
178
: internal::atomic_impl<T,T,internal::pthread_traits<T,T> > { \
180
: internal::atomic_impl<T,T,internal::pthread_traits<T,T> >() {} \
171
181
T operator=( T rhs ) { return store_with_release(rhs); } \
173
__TBB_DECL_ATOMIC64(long long)
174
__TBB_DECL_ATOMIC64(unsigned long long)
183
__DRIZZLE_DECL_ATOMIC64(long long)
184
__DRIZZLE_DECL_ATOMIC64(unsigned long long)