Skip to content

Commit bd9b8ad

Browse files
author
Alex Peck
committed
removed
1 parent f19680f commit bd9b8ad

File tree

5 files changed

+20
-10
lines changed

5 files changed

+20
-10
lines changed

BitFaster.Caching/Lru/ConcurrentLruCore.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -501,7 +501,7 @@ int RemoveDiscardableItems(ConcurrentQueue<I> q, ref int queueCounter)
501501
{
502502
if (q.TryDequeue(out var item))
503503
{
504-
if (this.itemPolicy.ShouldDiscard(item))
504+
if (this.itemPolicy.ShouldDiscard(item) | item.WasRemoved)
505505
{
506506
Interlocked.Decrement(ref queueCounter);
507507
this.Move(item, ItemDestination.Remove, ItemRemovedReason.Trimmed);

BitFaster.Caching/Lru/DiscretePolicy.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ public bool CanDiscard()
7272
[MethodImpl(MethodImplOptions.AggressiveInlining)]
7373
public ItemDestination RouteHot(LongTickCountLruItem<K, V> item)
7474
{
75-
if (this.ShouldDiscard(item))
75+
if (this.ShouldDiscard(item) | item.WasRemoved)
7676
{
7777
return ItemDestination.Remove;
7878
}
@@ -89,7 +89,7 @@ public ItemDestination RouteHot(LongTickCountLruItem<K, V> item)
8989
[MethodImpl(MethodImplOptions.AggressiveInlining)]
9090
public ItemDestination RouteWarm(LongTickCountLruItem<K, V> item)
9191
{
92-
if (this.ShouldDiscard(item))
92+
if (this.ShouldDiscard(item) | item.WasRemoved)
9393
{
9494
return ItemDestination.Remove;
9595
}
@@ -106,7 +106,7 @@ public ItemDestination RouteWarm(LongTickCountLruItem<K, V> item)
106106
[MethodImpl(MethodImplOptions.AggressiveInlining)]
107107
public ItemDestination RouteCold(LongTickCountLruItem<K, V> item)
108108
{
109-
if (this.ShouldDiscard(item))
109+
if (this.ShouldDiscard(item) | item.WasRemoved)
110110
{
111111
return ItemDestination.Remove;
112112
}

BitFaster.Caching/Lru/LruPolicy.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,11 @@ public bool CanDiscard()
5050
[MethodImpl(MethodImplOptions.AggressiveInlining)]
5151
public ItemDestination RouteHot(LruItem<K, V> item)
5252
{
53+
if (item.WasRemoved)
54+
{
55+
return ItemDestination.Remove;
56+
}
57+
5358
if (item.WasAccessed)
5459
{
5560
return ItemDestination.Warm;
@@ -62,6 +67,11 @@ public ItemDestination RouteHot(LruItem<K, V> item)
6267
[MethodImpl(MethodImplOptions.AggressiveInlining)]
6368
public ItemDestination RouteWarm(LruItem<K, V> item)
6469
{
70+
if (item.WasRemoved)
71+
{
72+
return ItemDestination.Remove;
73+
}
74+
6575
if (item.WasAccessed)
6676
{
6777
return ItemDestination.Warm;

BitFaster.Caching/Lru/TLruLongTicksPolicy.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public bool CanDiscard()
7171
[MethodImpl(MethodImplOptions.AggressiveInlining)]
7272
public ItemDestination RouteHot(LongTickCountLruItem<K, V> item)
7373
{
74-
if (this.ShouldDiscard(item))
74+
if (this.ShouldDiscard(item) | item.WasRemoved)
7575
{
7676
return ItemDestination.Remove;
7777
}
@@ -88,7 +88,7 @@ public ItemDestination RouteHot(LongTickCountLruItem<K, V> item)
8888
[MethodImpl(MethodImplOptions.AggressiveInlining)]
8989
public ItemDestination RouteWarm(LongTickCountLruItem<K, V> item)
9090
{
91-
if (this.ShouldDiscard(item))
91+
if (this.ShouldDiscard(item) | item.WasRemoved)
9292
{
9393
return ItemDestination.Remove;
9494
}
@@ -105,7 +105,7 @@ public ItemDestination RouteWarm(LongTickCountLruItem<K, V> item)
105105
[MethodImpl(MethodImplOptions.AggressiveInlining)]
106106
public ItemDestination RouteCold(LongTickCountLruItem<K, V> item)
107107
{
108-
if (this.ShouldDiscard(item))
108+
if (this.ShouldDiscard(item) | item.WasRemoved)
109109
{
110110
return ItemDestination.Remove;
111111
}

BitFaster.Caching/Lru/TlruDateTimePolicy.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ public bool CanDiscard()
6868
[MethodImpl(MethodImplOptions.AggressiveInlining)]
6969
public ItemDestination RouteHot(TimeStampedLruItem<K, V> item)
7070
{
71-
if (this.ShouldDiscard(item))
71+
if (this.ShouldDiscard(item) | item.WasRemoved)
7272
{
7373
return ItemDestination.Remove;
7474
}
@@ -85,7 +85,7 @@ public ItemDestination RouteHot(TimeStampedLruItem<K, V> item)
8585
[MethodImpl(MethodImplOptions.AggressiveInlining)]
8686
public ItemDestination RouteWarm(TimeStampedLruItem<K, V> item)
8787
{
88-
if (this.ShouldDiscard(item))
88+
if (this.ShouldDiscard(item) | item.WasRemoved)
8989
{
9090
return ItemDestination.Remove;
9191
}
@@ -102,7 +102,7 @@ public ItemDestination RouteWarm(TimeStampedLruItem<K, V> item)
102102
[MethodImpl(MethodImplOptions.AggressiveInlining)]
103103
public ItemDestination RouteCold(TimeStampedLruItem<K, V> item)
104104
{
105-
if (this.ShouldDiscard(item))
105+
if (this.ShouldDiscard(item) | item.WasRemoved)
106106
{
107107
return ItemDestination.Remove;
108108
}

0 commit comments

Comments
 (0)