Lines Matching defs:lock
65 * therefore no lock is required for the "write once/read many" fields. It is
66 * safe for multiple threads to read these fields without a lock, because they
70 * shared between multiple threads. Where this is the case a lock is required.
87 * The store lock: Used to control the stack of provider's held within the
91 * - keep the scope of the code that is protected by a lock to the absolute
93 * - try to keep the scope of the lock to within a single function (i.e. avoid
94 * making calls to other functions while holding a lock);
95 * - try to only ever hold one lock at a time.
102 * provider store lock, the provider flag_lock and the provider refcnt_lock.
105 * 1) provider store lock
112 * some other function while holding a lock make sure you know whether it
220 CRYPTO_RWLOCK *lock;
233 * don't need to care about any lock.
301 CRYPTO_THREAD_lock_free(store->lock);
318 || (store->lock = CRYPTO_THREAD_lock_new()) == NULL) {
351 if (!CRYPTO_THREAD_write_lock(store->lock))
354 CRYPTO_THREAD_unlock(store->lock);
378 if (!CRYPTO_THREAD_write_lock(store->lock))
406 CRYPTO_THREAD_unlock(store->lock);
433 * A "find" operation can sort the stack, and therefore a write lock is
436 if (!CRYPTO_THREAD_write_lock(store->lock))
440 CRYPTO_THREAD_unlock(store->lock);
555 if (!CRYPTO_THREAD_read_lock(store->lock))
563 CRYPTO_THREAD_unlock(store->lock);
587 /* Assumes that the store lock is held */
624 if (!CRYPTO_THREAD_write_lock(store->lock))
646 CRYPTO_THREAD_unlock(store->lock);
675 CRYPTO_THREAD_unlock(store->lock);
1048 int lock = 1;
1054 * No need to lock if we've got no store because we've not been shared with
1059 lock = 0;
1061 if (lock && !CRYPTO_THREAD_read_lock(store->lock))
1063 if (lock && !CRYPTO_THREAD_write_lock(prov->flag_lock)) {
1064 CRYPTO_THREAD_unlock(store->lock);
1098 if (lock) {
1100 CRYPTO_THREAD_unlock(store->lock);
1115 static int provider_activate(OSSL_PROVIDER *prov, int lock, int upcalls)
1127 lock = 0;
1137 if (lock && !CRYPTO_THREAD_read_lock(store->lock)) {
1145 if (lock && !CRYPTO_THREAD_write_lock(prov->flag_lock)) {
1146 CRYPTO_THREAD_unlock(store->lock);
1160 if (lock) {
1162 CRYPTO_THREAD_unlock(store->lock);
1179 if (!CRYPTO_THREAD_read_lock(store->lock))
1182 CRYPTO_THREAD_unlock(store->lock);
1211 if (!CRYPTO_THREAD_read_lock(store->lock))
1214 CRYPTO_THREAD_unlock(store->lock);
1290 if (!CRYPTO_THREAD_read_lock(store->lock))
1293 CRYPTO_THREAD_unlock(store->lock);
1297 if (!CRYPTO_THREAD_write_lock(store->lock))
1302 CRYPTO_THREAD_unlock(store->lock);
1324 * We are calling provider_activate while holding the store lock. This
1325 * means the init function will be called while holding a lock. Normally
1326 * we try to avoid calling a user callback while holding a lock.
1346 CRYPTO_THREAD_unlock(store->lock);
1374 * Under lock, grab a copy of the provider list and up_ref each
1377 if (!CRYPTO_THREAD_read_lock(store->lock))
1381 CRYPTO_THREAD_unlock(store->lock);
1423 CRYPTO_THREAD_unlock(store->lock);
1426 * Now, we sweep through all providers not under lock
1442 CRYPTO_THREAD_unlock(store->lock);
1694 if (!CRYPTO_THREAD_read_lock(store->lock))
1703 CRYPTO_THREAD_unlock(store->lock);
1744 if (!CRYPTO_THREAD_write_lock(store->lock)) {
1765 * We hold the store lock while calling the user callback. This means
1771 * the store lock.
1789 CRYPTO_THREAD_unlock(store->lock);
1809 if (!CRYPTO_THREAD_write_lock(store->lock))
1821 CRYPTO_THREAD_unlock(store->lock);