-int CRYPTO_atomic_read(int *val, int *ret, CRYPTO_RWLOCK *lock)
-{
-# if defined(__GNUC__) && defined(__ATOMIC_ACQUIRE)
- if (__atomic_is_lock_free(sizeof(*val), val)) {
- __atomic_load(val, ret, __ATOMIC_ACQUIRE);
- return 1;
- }
-# endif
- if (!CRYPTO_THREAD_write_lock(lock))
- return 0;
-
- *ret = *val;
-
- if (!CRYPTO_THREAD_unlock(lock))
- return 0;
-
- return 1;
-}
-