13 using list_type = etl::intrusive_list<Stealable, Stealable::link_type>;
16 CacheManager() =
default;
18 list_type& queue(StealableQueue destination) {
return reclamation_queue_.at(util::to_underlying(destination)); }
20 uint32_t& longest_runs(
size_t idx) {
return longest_runs_.at(idx); }
24 size_t q = util::to_underlying(queue);
32 reclamation_queue_[q].push_back(stealable);
33 longest_runs_[q] = 0xFFFFFFFF;
36 uint32_t ReclaimMemory(
MemoryRegion& region, int32_t totalSizeNeeded,
void* thingNotToStealFrom,
37 int32_t* __restrict__ foundSpaceSize);
40 std::array<list_type, kNumStealableQueue> reclamation_queue_;
45 std::array<uint32_t, kNumStealableQueue> longest_runs_;
void QueueForReclamation(StealableQueue queue, Stealable &stealable)
add a stealable to end of given queue
Definition cache_manager.h:23