Nito.Disposables.SingleNonblockingAsyncDisposable<T>
A base class for disposables that need exactly-once semantics in a thread-safe way.
namespace Nito.Disposables
{
public abstract class SingleNonblockingAsyncDisposable<[System.Runtime.CompilerServices.Nullable(2)] T> : IAsyncDisposable
{
public bool IsDisposed { get; }
protected SingleNonblockingAsyncDisposable(T context);
protected abstract ValueTask DisposeAsync(T context);
public ValueTask DisposeAsync();
protected bool TryUpdateContext(Func<T, T> contextUpdater);
}
}