From 085af8ee1c5cd1effbcb011a5c8338e624f8feee Mon Sep 17 00:00:00 2001 From: Alex Peck Date: Sun, 3 Dec 2023 18:10:55 -0800 Subject: [PATCH 1/2] under lock --- BitFaster.Caching/Lfu/ConcurrentLfuCore.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/BitFaster.Caching/Lfu/ConcurrentLfuCore.cs b/BitFaster.Caching/Lfu/ConcurrentLfuCore.cs index 4afd172e..bc0d7c77 100644 --- a/BitFaster.Caching/Lfu/ConcurrentLfuCore.cs +++ b/BitFaster.Caching/Lfu/ConcurrentLfuCore.cs @@ -137,11 +137,10 @@ public void Clear() { this.Trim(this.Count); - this.readBuffer.Clear(); - this.writeBuffer.Clear(); - lock (maintenanceLock) { + this.readBuffer.Clear(); + this.writeBuffer.Clear(); this.cmSketch.Clear(); } } From 28121cafe0c6586ae79d0295eb0554017831e0ff Mon Sep 17 00:00:00 2001 From: Alex Peck Date: Sun, 3 Dec 2023 18:28:16 -0800 Subject: [PATCH 2/2] docs --- BitFaster.Caching/Buffers/MpscBoundedBuffer.cs | 3 +++ BitFaster.Caching/Buffers/StripedMpscBuffer.cs | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/BitFaster.Caching/Buffers/MpscBoundedBuffer.cs b/BitFaster.Caching/Buffers/MpscBoundedBuffer.cs index a5e55880..8879b834 100644 --- a/BitFaster.Caching/Buffers/MpscBoundedBuffer.cs +++ b/BitFaster.Caching/Buffers/MpscBoundedBuffer.cs @@ -254,6 +254,9 @@ private static int Length(Span output) /// /// Removes all values from the buffer. /// + /// + /// Clear must be called from the single consumer thread. + /// public void Clear() { while (TryTake(out _) != BufferStatus.Empty) diff --git a/BitFaster.Caching/Buffers/StripedMpscBuffer.cs b/BitFaster.Caching/Buffers/StripedMpscBuffer.cs index f5667fb9..8911b98f 100644 --- a/BitFaster.Caching/Buffers/StripedMpscBuffer.cs +++ b/BitFaster.Caching/Buffers/StripedMpscBuffer.cs @@ -123,7 +123,7 @@ public BufferStatus TryAdd(T item) /// Removes all values from the buffer. /// /// - /// Not thread safe. + /// Clear must be called from the single consumer thread. /// public void Clear() {