fix(dcl): drop values for unsubscribed tags before quality bookkeeping; cancel the reconnect re-seed when its session ends (review 2026-10-21 02/L2, 02/L4)

This commit is contained in:
Joseph Doherty
2026-10-22 06:26:06 -04:00
parent 8c1bd2c3fc
commit d51ea5136a
4 changed files with 163 additions and 13 deletions
@@ -22,6 +22,8 @@ public sealed class FakeBatchDataConnection
public readonly ConcurrentQueue<IReadOnlyList<string>> UnsubscribeBatches = new();
/// <summary>Tag lists handed to <see cref="ReadBatchAsync"/>, one entry per call.</summary>
public readonly ConcurrentQueue<IReadOnlyList<string>> ReadBatches = new();
/// <summary>The cancellation token handed to each <see cref="ReadBatchAsync"/> call, in order.</summary>
public readonly ConcurrentQueue<CancellationToken> ReadTokens = new();
/// <summary>Count of SINGLE-tag subscribe calls; must stay 0 on a batch-capable adapter.</summary>
public int SingleSubscribeCalls;
/// <summary>Count of SINGLE-tag read calls; must stay 0 on a batch-capable adapter.</summary>
@@ -143,6 +145,7 @@ public sealed class FakeBatchDataConnection
{
var tags = tagPaths.ToList();
ReadBatches.Enqueue(tags);
ReadTokens.Enqueue(cancellationToken);
if (HangReads)
await Task.Delay(Timeout.Infinite, cancellationToken);