Skip to content

Commit

Permalink
fix: Fix inactivity tracking queue undercut notification propagation …
Browse files Browse the repository at this point in the history
…mechanism
  • Loading branch information
angelobreuer committed Mar 17, 2024
1 parent 5abb18c commit b15e45b
Showing 1 changed file with 6 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ public InactivityExpirationQueue(ISystemClock systemClock, ILogger<InactivityExp
_playerQueueSyncRoot = new object();
_expirationUndercutTaskCompletionSource = new TaskCompletionSource(creationOptions: TaskCreationOptions.RunContinuationsAsynchronously);
_queueWaitSemaphoreSlim = new SemaphoreSlim(0, int.MaxValue);
_lowestExpirationAt = DateTimeOffset.MaxValue;
}

private void PromoteInternal()
Expand Down Expand Up @@ -92,7 +93,11 @@ private void NotifyInternal(ILavalinkPlayer player, DateTimeOffset expireAfter)
Diagnostics.InactivityExpirationQueueSize.Add(delta: 1, tag: KeyValuePair.Create<string, object?>("label", player.Label));
Diagnostics.TotalExpirationQueueSize.Add(delta: 1, tag: KeyValuePair.Create<string, object?>("label", player.Label));

if (expireAfter < _lowestExpirationAt)
if (_lowestExpirationAt == DateTimeOffset.MaxValue)
{
_lowestExpirationAt = expireAfter;
}
else if (expireAfter < _lowestExpirationAt)
{
_lowestExpirationAt = expireAfter;
_expirationUndercutTaskCompletionSource?.TrySetResult();
Expand Down

0 comments on commit b15e45b

Please sign in to comment.