Message232839
| Author |
vstinner |
| Recipients |
John.Malmberg, Vitor.de.Lima, gustavotemple, jyasskin, neologix, vstinner |
| Date |
2014年12月17日.23:53:27 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<1418860407.31.0.963467729742.issue22038@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
atomicv2.patch:
> _Atomic int _value;
Why not using the atomic_int type from stdatomic.h here?
> https://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html
"__atomic_store_n(): The valid memory model variants are __ATOMIC_RELAXED, __ATOMIC_SEQ_CST, and __ATOMIC_RELEASE."
I understand that _Py_atomic_store_explicit() only accept some values for order. An assertion should be added here, maybe for any implementation. Something like:
#define _Py_atomic_store_explicit(ATOMIC_VAL, NEW_VAL, ORDER) \
(assert((ORDER) == __ATOMIC_RELAXED \
|| (ORDER) == __ATOMIC_SEQ_CST \
|| (ORDER) == __ATOMIC_RELEASE), \
__atomic_store_n(&(ATOMIC_VAL)->_value, NEW_VAL, ORDER))
Same remark for _Py_atomic_load_explicit():
"__atomic_load_n(): The valid memory model variants are __ATOMIC_RELAXED, __ATOMIC_SEQ_CST, __ATOMIC_ACQUIRE, and __ATOMIC_CONSUME." |
|