From 1a8e0ffe9ff34782e096b375f23e9ba877303f3e Mon Sep 17 00:00:00 2001 From: Thomas Korrison Date: Sun, 1 Mar 2026 12:15:31 +0000 Subject: [PATCH 1/3] Apply suggested fix to src/policy/lru.rs from Copilot Autofix Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com> --- src/policy/lru.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/policy/lru.rs b/src/policy/lru.rs index 82f3461..36bd85a 100644 --- a/src/policy/lru.rs +++ b/src/policy/lru.rs @@ -680,13 +680,13 @@ where #[inline] fn peek_lru(&self) -> Option<(&K, &Arc)> { #[cfg(feature = "metrics")] - (&self.metrics).record_peek_lru_call(); + self.metrics.record_peek_lru_call(); let tail_id = self.tail?; let node = self.arena.get(tail_id)?; #[cfg(feature = "metrics")] - (&self.metrics).record_peek_lru_found(); + self.metrics.record_peek_lru_found(); Some((&node.key, &node.value)) } @@ -714,7 +714,7 @@ where fn recency_rank(&self, key: &K) -> Option { #[cfg(feature = "metrics")] - (&self.metrics).record_recency_rank_call(); + self.metrics.record_recency_rank_call(); let &target_id = self.map.get(key)?; let mut rank = 0usize; @@ -722,11 +722,11 @@ where while let Some(id) = current { #[cfg(feature = "metrics")] - (&self.metrics).record_recency_rank_scan_step(); + self.metrics.record_recency_rank_scan_step(); if id == target_id { #[cfg(feature = "metrics")] - (&self.metrics).record_recency_rank_found(); + self.metrics.record_recency_rank_found(); return Some(rank); } rank += 1; From 4298b525680e0b3985546be8aa45328ae7175cf0 Mon Sep 17 00:00:00 2001 From: Thomas Korrison Date: Sun, 1 Mar 2026 12:15:31 +0000 Subject: [PATCH 2/3] Apply suggested fix to src/policy/lru.rs from Copilot Autofix Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com> --- src/policy/lru.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/policy/lru.rs b/src/policy/lru.rs index 36bd85a..d29278f 100644 --- a/src/policy/lru.rs +++ b/src/policy/lru.rs @@ -626,11 +626,11 @@ where #[inline] pub fn peek(&self, key: &K) -> Option> { #[cfg(feature = "metrics")] - (&self.metrics).record_peek_lru_call(); + self.metrics.record_peek_lru_call(); if let Some(&id) = self.map.get(key) { #[cfg(feature = "metrics")] - (&self.metrics).record_peek_lru_found(); + self.metrics.record_peek_lru_found(); let node = self.arena.get(id).expect("peek: stale SlotId"); return Some(Arc::clone(&node.value)); } From 96c3710bd0e8c274c0d42f776e6f76689c96d252 Mon Sep 17 00:00:00 2001 From: Thomas Korrison Date: Sun, 1 Mar 2026 12:15:32 +0000 Subject: [PATCH 3/3] Apply suggested fix to src/policy/lru.rs from Copilot Autofix Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com> --- src/policy/lru.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/policy/lru.rs b/src/policy/lru.rs index d29278f..f8097d6 100644 --- a/src/policy/lru.rs +++ b/src/policy/lru.rs @@ -228,7 +228,7 @@ //! }; //! use std::sync::Arc; //! -//! // Single-threaded usage +//! // Single-threaded usage (non-concurrent) //! let mut cache: LruCore = LruCore::new(100); //! cache.insert(1, Arc::new("page_data".to_string())); //! @@ -241,6 +241,17 @@ //! println!("Peeked: {}", value); // returns Arc //! } //! +//! // Multi-threaded usage with thread-safe wrapper +//! let cache: ConcurrentLruCache = ConcurrentLruCache::new(100); +//! +//! // Clone the handle and send to other threads; internal access is synchronized. +//! let cache_clone = cache.clone(); +//! cache_clone.insert(2, Arc::new("other_page".to_string())); +//! +//! if let Some(value) = cache_clone.get(&2) { +//! println!("Concurrent got: {}", value); // safe across threads +//! } +//! //! // Evict least recently used //! if let Some((key, value)) = cache.pop_lru() { //! println!("Evicted key={}, value={}", key, value);