mirror of
https://github.com/ZoneTree/ZoneTree.git
synced 2026-10-26 03:00:12 +08:00
Update sliding expiration.
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user