mirror of
https://github.com/SerenityOS/serenity.git
synced 2025-01-23 01:41:59 -05:00
Kernel: Promote the entry to the front during a cache hit
Whenever an entry is added to the cache, the last element is removed to make space for the new entry(if the cache is full). To make this an LRU cache, the entry needs to be moved to the front of the list when there is a cache hit so that the least recently used entry moves to the end to be evicted first.
This commit is contained in:
parent
d6ee4e7fdc
commit
ac9d60bb13
1 changed files with 4 additions and 0 deletions
|
@ -60,6 +60,10 @@ public:
|
|||
return nullptr;
|
||||
auto& entry = const_cast<CacheEntry&>(*it->value);
|
||||
VERIFY(entry.block_index == block_index);
|
||||
if (!entry_is_dirty(entry) && (m_clean_list.first() != &entry)) {
|
||||
// Cache hit! Promote the entry to the front of the list.
|
||||
m_clean_list.prepend(entry);
|
||||
}
|
||||
return &entry;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue