template<typename K, typename V, class KT = DefaultKeyTraits<K>, class VT = DefaultValueTraits<V>>
class ConcurrentMap< K, V, KT, VT >::Mutator
Definition at line 70 of file concurrent_map.h.
template<typename K , typename V , class KT = DefaultKeyTraits<K>, class VT = DefaultValueTraits<V>>
Definition at line 81 of file concurrent_map.h.
82 {
83 Hash hash = KeyTraits::hash(key);
84 for (;;) {
88 return;
89 }
90
93
95 return;
96 }
97
99
100 }
101 }
float value(const T *src, size_t ch)
T load(MemoryOrder memoryOrder) const
Atomic< typename Details::Table * > m_root
SimpleJobCoordinator jobCoordinator
static Cell * find(Hash hash, Table *table)
References Consume, Leapfrog< Map >::find(), Leapfrog< Map >::Table::jobCoordinator, Atomic< T >::load(), ConcurrentMap< K, V, KT, VT >::Mutator::m_cell, ConcurrentMap< K, V, KT, VT >::Mutator::m_map, ConcurrentMap< K, V, KT, VT >::m_root, ConcurrentMap< K, V, KT, VT >::Mutator::m_table, ConcurrentMap< K, V, KT, VT >::Mutator::m_value, SimpleJobCoordinator::participate(), Leapfrog< Map >::Cell::value, and value().
template<typename K , typename V , class KT = DefaultKeyTraits<K>, class VT = DefaultValueTraits<V>>
Definition at line 104 of file concurrent_map.h.
105 {
106 Hash hash = KeyTraits::hash(key);
107 for (;;) {
109 quint64 overflowIdx;
112
113 return;
114 }
116
119
120 break;
121 }
122
124 return;
125 }
127
128
129
130
131
132
134 break;
135 }
136 }
137
139
140 }
141 }
@ InsertResult_InsertedNew
@ InsertResult_AlreadyFound
static void beginTableMigration(Map &map, Table *table, quint64 overflowIdx)
static InsertResult insertOrFind(Hash hash, Table *table, Cell *&cell, quint64 &overflowIdx)
References Leapfrog< Map >::beginTableMigration(), Consume, Leapfrog< Map >::insertOrFind(), Leapfrog< Map >::InsertResult_AlreadyFound, Leapfrog< Map >::InsertResult_InsertedNew, Leapfrog< Map >::InsertResult_Overflow, Leapfrog< Map >::Table::jobCoordinator, Atomic< T >::load(), ConcurrentMap< K, V, KT, VT >::Mutator::m_cell, ConcurrentMap< K, V, KT, VT >::Mutator::m_map, ConcurrentMap< K, V, KT, VT >::m_root, ConcurrentMap< K, V, KT, VT >::Mutator::m_table, ConcurrentMap< K, V, KT, VT >::Mutator::m_value, SimpleJobCoordinator::participate(), Leapfrog< Map >::Cell::value, and value().
template<typename K , typename V , class KT = DefaultKeyTraits<K>, class VT = DefaultValueTraits<V>>
Definition at line 205 of file concurrent_map.h.
206 {
207 for (;;) {
210 }
211
213
216 return result;
217 }
218
219
221
222
223 return Value(ValueTraits::NullValue);
224 }
225
226
228 for (;;) {
229
231
237 }
238
241 break;
242 }
243 }
244 }
245 }
bool compareExchangeStrong(T &expected, T desired, MemoryOrder memoryOrder)
References Atomic< T >::compareExchangeStrong(), Consume, Leapfrog< Map >::find(), Leapfrog< Map >::Cell::hash, Leapfrog< Map >::Table::jobCoordinator, Atomic< T >::load(), ConcurrentMap< K, V, KT, VT >::Mutator::m_cell, ConcurrentMap< K, V, KT, VT >::Mutator::m_map, ConcurrentMap< K, V, KT, VT >::m_root, ConcurrentMap< K, V, KT, VT >::Mutator::m_table, ConcurrentMap< K, V, KT, VT >::Mutator::m_value, SimpleJobCoordinator::participate(), Relaxed, and Leapfrog< Map >::Cell::value.
template<typename K , typename V , class KT = DefaultKeyTraits<K>, class VT = DefaultValueTraits<V>>
Definition at line 150 of file concurrent_map.h.
151 {
152 for (;;) {
155
158 return result;
159 }
160
162 if (oldValue ==
Value(ValueTraits::NullValue) &&
m_value !=
Value(ValueTraits::NullValue)) {
163
164 }
165
166
167 return desired;
168 }
169
170
172 for (;;) {
173
175
178 quint64 overflowIdx;
179
184 break;
185 }
186 goto breakOuter;
188 goto breakOuter;
191 break;
192 }
193
194 }
195 breakOuter:;
196
197 }
198 }
References Leapfrog< Map >::beginTableMigration(), Atomic< T >::compareExchangeStrong(), Consume, ConsumeRelease, Leapfrog< Map >::Cell::hash, Leapfrog< Map >::insertOrFind(), Leapfrog< Map >::InsertResult_AlreadyFound, Leapfrog< Map >::InsertResult_InsertedNew, Leapfrog< Map >::InsertResult_Overflow, Leapfrog< Map >::Table::jobCoordinator, Atomic< T >::load(), ConcurrentMap< K, V, KT, VT >::Mutator::m_cell, ConcurrentMap< K, V, KT, VT >::Mutator::m_map, ConcurrentMap< K, V, KT, VT >::m_root, ConcurrentMap< K, V, KT, VT >::Mutator::m_table, ConcurrentMap< K, V, KT, VT >::Mutator::m_value, SimpleJobCoordinator::participate(), Relaxed, and Leapfrog< Map >::Cell::value.