Update sliding expiration.

This commit is contained in:
Ahmed Yasin Koculu
2022-08-22 10:25:43 +02:00
parent 0587b21d20
commit e78722c0ac
2 changed files with 7 additions and 5 deletions
+1 -1
View File
@@ -36,7 +36,7 @@ public class TTLTests
out v1,
void (ref TTLValue<int> v) =>
v.SlideExpiration(TimeSpan.FromMilliseconds(300)));
Thread.Sleep(300);
Thread.Sleep(450); // initial expiration (300) + slided expiration (300) - Thread.Sleep(150)
f2 = zoneTree.TryGetAndUpdate(
5,
out v2,
+6 -4
View File
@@ -219,9 +219,10 @@ public sealed class ZoneTree<TKey, TValue> : IZoneTree<TKey, TValue>, IZoneTreeM
if (SegmentZero.TryGet(key, out value))
{
return !IsValueDeleted(value);
if (IsValueDeleted(value))
return false;
}
if (!TryGetFromReadonlySegments(in key, out value))
else if (!TryGetFromReadonlySegments(in key, out value))
return false;
valueUpdater(ref value);
@@ -238,9 +239,10 @@ public sealed class ZoneTree<TKey, TValue> : IZoneTree<TKey, TValue>, IZoneTreeM
{
if (SegmentZero.TryGet(key, out value))
{
return !IsValueDeleted(value);
if (IsValueDeleted(value))
return false;
}
if (!TryGetFromReadonlySegments(in key, out value))
else if (!TryGetFromReadonlySegments(in key, out value))
return false;
valueUpdater(ref value);