Lines Matching +full:non +full:- +full:protected
3 Using RCU to Protect Read-Mostly Arrays
15 Each of these three situations involves an RCU-protected pointer to an
18 case is **not** supported. The problem with RCU-protected indexes into
21 are far more trouble than they are worth. If RCU-protected indexes into
26 That aside, each of the three RCU-protected pointer situations are
32 ------------------------
35 has a linked-list hash chain. Each hash chain can be protected by RCU
37 to other array-of-list situations, such as radix trees.
42 --------------------------
47 this situation, which would also have minimal read-side overhead as long
58 ------------------------------
62 to map from semaphore, message-queue, and shared-memory IDs to the data
65 ids->sem semaphore.
69 the remainder of the new, updates the ids->entries pointer to point to
71 Note that rcu_assign_pointer() is used to update the ids->entries pointer,
80 int size = ids->entries->size;
91 new->size = newsize;
92 memcpy(new->p, ids->entries->p,
96 new->p[i] = NULL;
98 old = ids->entries;
105 rcu_assign_pointer(ids->entries, new);
118 that it may later safely be dereferenced -- memory barriers are
120 with the array itself, there can be no array-size mismatches, so
123 a non-existent entry. After acquiring "out->lock", the "out->deleted"
134 entries = rcu_dereference(ids->entries);
135 if(lid >= entries->size) {
139 out = entries->p[lid];
144 spin_lock(&out->lock);
149 if (out->deleted) {
150 spin_unlock(&out->lock);