<PackageReference Include="Microsoft.Identity.Client" Version="4.83.4-preview1" />

Microsoft.Identity.Client.PlatformsCommon.Shared.KeyedSemaphorePool

sealed class KeyedSemaphorePool
Provides per-key async gates using SemaphoreSlim. Call EnterAsync and ensure Release is called in a finally block. Semaphores are kept for the lifetime of the pool; we do not remove or dispose them per key to avoid races with concurrent callers.
namespace Microsoft.Identity.Client.PlatformsCommon.Shared { internal sealed class KeyedSemaphorePool { public Task EnterAsync(string key, CancellationToken cancellationToken); public void Release(string key); public KeyedSemaphorePool(); } }