// -*- C++ -*- header.
-// Copyright (C) 2008, 2009, 2010
+// Copyright (C) 2008, 2009, 2010, 2011
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
atomic_flag_clear_explicit(__g, __x); \
__r; })
-#define _ATOMIC_STORE_(__a, __m, __x) \
+#define _ATOMIC_STORE_(__a, __n, __x) \
({typedef __typeof__(_ATOMIC_MEMBER_) __i_type; \
__i_type* __p = &_ATOMIC_MEMBER_; \
- __typeof__(__m) __v = (__m); \
+ __typeof__(__n) __w = (__n); \
__atomic_flag_base* __g = __atomic_flag_for_address(__p); \
__atomic_flag_wait_explicit(__g, __x); \
- *__p = __v; \
+ *__p = __w; \
atomic_flag_clear_explicit(__g, __x); \
- __v; })
+ __w; })
-#define _ATOMIC_MODIFY_(__a, __o, __m, __x) \
+#define _ATOMIC_MODIFY_(__a, __o, __n, __x) \
({typedef __typeof__(_ATOMIC_MEMBER_) __i_type; \
__i_type* __p = &_ATOMIC_MEMBER_; \
- __typeof__(__m) __v = (__m); \
+ __typeof__(__n) __w = (__n); \
__atomic_flag_base* __g = __atomic_flag_for_address(__p); \
__atomic_flag_wait_explicit(__g, __x); \
__i_type __r = *__p; \
- *__p __o __v; \
+ *__p __o __w; \
atomic_flag_clear_explicit(__g, __x); \
__r; })
-#define _ATOMIC_CMPEXCHNG_(__a, __e, __m, __x) \
+#define _ATOMIC_CMPEXCHNG_(__a, __e, __n, __x) \
({typedef __typeof__(_ATOMIC_MEMBER_) __i_type; \
__i_type* __p = &_ATOMIC_MEMBER_; \
__typeof__(__e) __q = (__e); \
- __typeof__(__m) __v = (__m); \
+ __typeof__(__n) __w = (__n); \
bool __r; \
__atomic_flag_base* __g = __atomic_flag_for_address(__p); \
__atomic_flag_wait_explicit(__g, __x); \
__i_type __t = *__p; \
if (*__q == __t) \
- { \
- *__p = (__i_type)__v; \
- __r = true; \
- } \
+ { \
+ *__p = (__i_type)__w; \
+ __r = true; \
+ } \
else { *__q = __t; __r = false; } \
atomic_flag_clear_explicit(__g, __x); \
__r; })