MCPcopy Create free account
hub / github.com/apache/impala / EvictOne

Method EvictOne

be/src/util/lru-multi-cache.inline.h:240–261  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

238
239template <typename KeyType, typename ValueType>
240void LruMultiCache<KeyType, ValueType>::EvictOne(ValueType_internal& value_internal) {
241 // SpinLock is locked by the caller evicting function
242 lock_.DCheckLocked();
243
244 // Has to be available to evict
245 DCHECK(value_internal.IsAvailable());
246
247 // Remove from LRU cache
248 value_internal.member_hook.unlink();
249
250 Container& container = value_internal.container;
251
252 if (container.size() == 1) {
253 // Last element, owning list can be removed to prevent aging
254 hash_table_.erase(value_internal.key);
255 } else {
256 // Remove from owning list
257 container.erase(value_internal.it);
258 }
259
260 size_--;
261}
262
263template <typename KeyType, typename ValueType>
264void LruMultiCache<KeyType, ValueType>::EvictOneIfNeeded() {

Callers

nothing calls this directly

Calls 4

DCheckLockedMethod · 0.80
IsAvailableMethod · 0.80
eraseMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected