MCPcopy Create free account
hub / github.com/facebook/CacheLib / updateNumSlabsToAdvise

Method updateNumSlabsToAdvise

cachelib/allocator/MemoryMonitor.cpp:82–95  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

80}
81
82void MemoryMonitor::updateNumSlabsToAdvise(int32_t numSlabs) {
83 auto curNumSlabsToAdvise = numSlabsToAdvise_.load(std::memory_order_acquire);
84 size_t newNumSlabsToAdvise;
85 do {
86 newNumSlabsToAdvise = curNumSlabsToAdvise + numSlabs;
87 if (numSlabs < 0 &&
88 static_cast<uint64_t>(-numSlabs) > curNumSlabsToAdvise) {
89 throw std::invalid_argument(
90 fmt::format("Invalid numSlabs {} to update numSlabsToAdvise {}",
91 numSlabs, curNumSlabsToAdvise));
92 }
93 } while (!numSlabsToAdvise_.compare_exchange_weak(
94 curNumSlabsToAdvise, newNumSlabsToAdvise, std::memory_order_acq_rel));
95}
96
97void MemoryMonitor::checkFreeMemory() {
98 auto memFree = facebook::cachelib::util::getMemAvailable();

Calls

no outgoing calls