Lines Matching defs:set
15 // A lock-free, wait-free hash set that tracks the set of lock classes that have
16 // been acquired prior the lock class that owns the set. Each lock class
17 // maintains its own dependency set.
19 // Implementation note: This hash set makes use of relaxed atomic operations.
32 // Checks the depedency hash set for the given lock class. This method may
47 // Adds the given lock class id to the dependency set if not already present.
48 // Updates the set using the following lock free approach:
49 // 1. The dependency set is fixed size and all entries start out empty.
52 // 4. To add an entry the set is probed linearly until either:
53 // a) The id to add appears in the set already.
55 // c) The entire set has been probed; return max dependencies error.
88 // Iterator type to traverse the set of populated lock classes. Entries
90 // on where they land in the hash set relative to the index member.
92 const LockDependencySet* set;
98 return set->list_[index].load(fbl::memory_order_relaxed);
111 return set != other.set || index != other.index;
125 // Clears the dependency set. This method is not used by the main algorithm
128 // any time, resulting in dependency set being rebuilt at runtime. Once
130 // memoization table whenever any dependency set is cleared so that the
131 // dependency set can be rebuilt; failure to do so could result in missing
150 // The list of atomic variables that make up the hash set. Initialized to