Commit f49452c2 authored by Pauli's avatar Pauli
Browse files

Return a value from atomic read on Windows.


Use a read lock when reading using pthreads.

Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/4517)
parent 19f05ebc
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -177,7 +177,7 @@ int CRYPTO_atomic_read(int *val, int *ret, CRYPTO_RWLOCK *lock)
        return 1;
    }
# endif
    if (!CRYPTO_THREAD_write_lock(lock))
    if (!CRYPTO_THREAD_read_lock(lock))
        return 0;

    *ret  = *val;
+1 −1
Original line number Diff line number Diff line
@@ -135,7 +135,7 @@ int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock)

int CRYPTO_atomic_read(int *val, int *ret, CRYPTO_RWLOCK *lock)
{
    InterlockedCompareExchange(val, 0, 0);
    *ret = InterlockedCompareExchange(val, 0, 0);
    return 1;
}