提交 11fc6c76 编写于 作者: R Richard Levitte 提交者: Matt Caswell

CRYPTO_atomic_add(): use acquire release memory order rather than relaxed

For increments, the relaxed model is fine.  For decrements, it's
recommended to use the acquire release model.  We therefore go for the
latter.
Reviewed-by: NAndy Polyakov <appro@openssl.org>
上级 cb4b54c2
......@@ -109,8 +109,8 @@ int CRYPTO_THREAD_compare_id(CRYPTO_THREAD_ID a, CRYPTO_THREAD_ID b)
int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock)
{
# if defined(__GNUC__) && defined(__ATOMIC_RELAXED)
*ret = __atomic_add_fetch(val, amount, __ATOMIC_RELAXED);
# if defined(__GNUC__) && defined(__ATOMIC_ACQ_REL)
*ret = __atomic_add_fetch(val, amount, __ATOMIC_ACQ_REL);
# else
if (!CRYPTO_THREAD_write_lock(lock))
return 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册