Skip to content

Commit 26063a4

Browse files
authored
fix (#404)
1 parent 43281dd commit 26063a4

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

BitFaster.Caching.UnitTests/Lru/ConcurrentLruTests.cs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -866,6 +866,25 @@ public void WhenItemsExistClearRemovesAllItems()
866866
lru.HotCount.Should().Be(0);
867867
lru.WarmCount.Should().Be(0);
868868
lru.ColdCount.Should().Be(0);
869+
}
870+
871+
[Fact]
872+
public void WhenWarmThenClearedIsWarmIsReset()
873+
{
874+
for (int i = 0; i < 20; i++)
875+
{
876+
lru.GetOrAdd(i, k => k.ToString());
877+
}
878+
879+
lru.Clear();
880+
lru.Count.Should().Be(0);
881+
882+
for (int i = 0; i < 20; i++)
883+
{
884+
lru.GetOrAdd(i, k => k.ToString());
885+
}
886+
887+
lru.Count.Should().Be(capacity.Hot + capacity.Warm + capacity.Cold);
869888
}
870889

871890
[Fact]

BitFaster.Caching/Lru/ConcurrentLruCore.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -430,6 +430,8 @@ public void Clear()
430430
CycleWarmUnchecked(ItemRemovedReason.Cleared);
431431
TryRemoveCold(ItemRemovedReason.Cleared);
432432
}
433+
434+
Volatile.Write(ref this.isWarm, false);
433435
}
434436

435437
/// <summary>

0 commit comments

Comments
 (0)