Lines Matching refs:lock

23     SRWLOCK lock;  member
30 CRYPTO_RWLOCK *lock; in CRYPTO_THREAD_lock_new() local
34 if ((lock = OPENSSL_zalloc(sizeof(CRYPTO_win_rwlock))) == NULL) in CRYPTO_THREAD_lock_new()
36 rwlock = lock; in CRYPTO_THREAD_lock_new()
37 InitializeSRWLock(&rwlock->lock); in CRYPTO_THREAD_lock_new()
40 if ((lock = OPENSSL_zalloc(sizeof(CRITICAL_SECTION))) == NULL) { in CRYPTO_THREAD_lock_new()
47 if (!InitializeCriticalSectionAndSpinCount(lock, 0x400)) { in CRYPTO_THREAD_lock_new()
48 OPENSSL_free(lock); in CRYPTO_THREAD_lock_new()
52 InitializeCriticalSection(lock); in CRYPTO_THREAD_lock_new()
56 return lock; in CRYPTO_THREAD_lock_new()
59 __owur int CRYPTO_THREAD_read_lock(CRYPTO_RWLOCK *lock) in CRYPTO_THREAD_read_lock() argument
62 CRYPTO_win_rwlock *rwlock = lock; in CRYPTO_THREAD_read_lock()
64 AcquireSRWLockShared(&rwlock->lock); in CRYPTO_THREAD_read_lock()
66 EnterCriticalSection(lock); in CRYPTO_THREAD_read_lock()
71 __owur int CRYPTO_THREAD_write_lock(CRYPTO_RWLOCK *lock) in CRYPTO_THREAD_write_lock() argument
74 CRYPTO_win_rwlock *rwlock = lock; in CRYPTO_THREAD_write_lock()
76 AcquireSRWLockExclusive(&rwlock->lock); in CRYPTO_THREAD_write_lock()
79 EnterCriticalSection(lock); in CRYPTO_THREAD_write_lock()
84 int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock) in CRYPTO_THREAD_unlock() argument
87 CRYPTO_win_rwlock *rwlock = lock; in CRYPTO_THREAD_unlock()
91 ReleaseSRWLockExclusive(&rwlock->lock); in CRYPTO_THREAD_unlock()
93 ReleaseSRWLockShared(&rwlock->lock); in CRYPTO_THREAD_unlock()
96 LeaveCriticalSection(lock); in CRYPTO_THREAD_unlock()
101 void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock) in CRYPTO_THREAD_lock_free() argument
103 if (lock == NULL) in CRYPTO_THREAD_lock_free()
107 DeleteCriticalSection(lock); in CRYPTO_THREAD_lock_free()
109 OPENSSL_free(lock); in CRYPTO_THREAD_lock_free()
124 LONG volatile *lock = (LONG *)once; in CRYPTO_THREAD_run_once() local
127 if (*lock == ONCE_DONE) in CRYPTO_THREAD_run_once()
131 result = InterlockedCompareExchange(lock, ONCE_ININIT, ONCE_UNINITED); in CRYPTO_THREAD_run_once()
134 *lock = ONCE_DONE; in CRYPTO_THREAD_run_once()
139 return (*lock == ONCE_DONE); in CRYPTO_THREAD_run_once()
201 int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock) in CRYPTO_atomic_add() argument
208 CRYPTO_RWLOCK *lock) in CRYPTO_atomic_or() argument
214 int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock) in CRYPTO_atomic_load() argument