Lines Matching full:lock

35     SRWLOCK lock;  member
42 CRYPTO_RWLOCK *lock; in CRYPTO_THREAD_lock_new() local
46 if ((lock = OPENSSL_zalloc(sizeof(CRYPTO_win_rwlock))) == NULL) in CRYPTO_THREAD_lock_new()
48 rwlock = lock; in CRYPTO_THREAD_lock_new()
49 InitializeSRWLock(&rwlock->lock); in CRYPTO_THREAD_lock_new()
52 if ((lock = OPENSSL_zalloc(sizeof(CRITICAL_SECTION))) == NULL) { in CRYPTO_THREAD_lock_new()
59 if (!InitializeCriticalSectionAndSpinCount(lock, 0x400)) { in CRYPTO_THREAD_lock_new()
60 OPENSSL_free(lock); in CRYPTO_THREAD_lock_new()
64 InitializeCriticalSection(lock); in CRYPTO_THREAD_lock_new()
68 return lock; in CRYPTO_THREAD_lock_new()
71 __owur int CRYPTO_THREAD_read_lock(CRYPTO_RWLOCK *lock) in CRYPTO_THREAD_read_lock() argument
74 CRYPTO_win_rwlock *rwlock = lock; in CRYPTO_THREAD_read_lock()
76 AcquireSRWLockShared(&rwlock->lock); in CRYPTO_THREAD_read_lock()
78 EnterCriticalSection(lock); in CRYPTO_THREAD_read_lock()
83 __owur int CRYPTO_THREAD_write_lock(CRYPTO_RWLOCK *lock) in CRYPTO_THREAD_write_lock() argument
86 CRYPTO_win_rwlock *rwlock = lock; in CRYPTO_THREAD_write_lock()
88 AcquireSRWLockExclusive(&rwlock->lock); in CRYPTO_THREAD_write_lock()
91 EnterCriticalSection(lock); in CRYPTO_THREAD_write_lock()
96 int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock) in CRYPTO_THREAD_unlock() argument
99 CRYPTO_win_rwlock *rwlock = lock; in CRYPTO_THREAD_unlock()
103 ReleaseSRWLockExclusive(&rwlock->lock); in CRYPTO_THREAD_unlock()
105 ReleaseSRWLockShared(&rwlock->lock); in CRYPTO_THREAD_unlock()
108 LeaveCriticalSection(lock); in CRYPTO_THREAD_unlock()
113 void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock) in CRYPTO_THREAD_lock_free() argument
115 if (lock == NULL) in CRYPTO_THREAD_lock_free()
119 DeleteCriticalSection(lock); in CRYPTO_THREAD_lock_free()
121 OPENSSL_free(lock); in CRYPTO_THREAD_lock_free()
136 LONG volatile *lock = (LONG *)once; in CRYPTO_THREAD_run_once() local
139 if (*lock == ONCE_DONE) in CRYPTO_THREAD_run_once()
143 result = InterlockedCompareExchange(lock, ONCE_ININIT, ONCE_UNINITED); in CRYPTO_THREAD_run_once()
146 *lock = ONCE_DONE; in CRYPTO_THREAD_run_once()
151 return (*lock == ONCE_DONE); in CRYPTO_THREAD_run_once()
213 int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock) in CRYPTO_atomic_add() argument
220 CRYPTO_RWLOCK *lock) in CRYPTO_atomic_or() argument
223 if (lock == NULL || !CRYPTO_THREAD_write_lock(lock)) in CRYPTO_atomic_or()
228 if (!CRYPTO_THREAD_unlock(lock)) in CRYPTO_atomic_or()
238 int CRYPTO_atomic_load(uint64_t *val, uint64_t *ret, CRYPTO_RWLOCK *lock) in CRYPTO_atomic_load() argument
241 if (lock == NULL || !CRYPTO_THREAD_read_lock(lock)) in CRYPTO_atomic_load()
244 if (!CRYPTO_THREAD_unlock(lock)) in CRYPTO_atomic_load()