DotNext.Threading by .NET Foundation and Contributors

<PackageReference Include="DotNext.Threading" Version="5.11.0" />

 LeaseProvider<TMetadata>

public abstract class LeaseProvider<TMetadata> : Disposable
Represents provider side of a lease in a distributed environment.
public struct AcquisitionResult<TMetadata>

Represents a result of lease acquisition operation.

public struct State<TMetadata>

Represents a state of the lease.

protected CancellationToken LifetimeToken { get; }

A token that represents state of this object.

public TimeSpan TimeToLive { get; }

Gets a lease time-to-live.

protected LeaseProvider(TimeSpan ttl, TimeProvider provider = null)

Initializes a new instance of lease provider.

public ValueTask<AcquisitionResult<TMetadata>> AcquireAsync<TArg>(TArg arg, Func<TArg, TMetadata, CancellationToken, ValueTask<TMetadata>> updater, CancellationToken token = default)

Acquires the lease.

public ValueTask<AcquisitionResult<TMetadata>> AcquireAsync(CancellationToken token = default)

Acquires the lease.

protected abstract ValueTask<State<TMetadata>> GetStateAsync(CancellationToken token)

Loads the state of a lease from the underlying storage.

public ValueTask<LeaseIdentity?> ReleaseAsync<TArg>(LeaseIdentity identity, TArg arg, Func<TArg, TMetadata, CancellationToken, ValueTask<TMetadata>> updater, CancellationToken token = default)

Releases the lease.

Releases the lease.

public ValueTask<AcquisitionResult<TMetadata>?> TryAcquireAsync<TArg>(TArg arg, Func<TArg, TMetadata, CancellationToken, ValueTask<TMetadata>> updater, CancellationToken token = default)

Tries to acquire the lease.

public ValueTask<AcquisitionResult<TMetadata>?> TryAcquireAsync(CancellationToken token = default)

Tries to acquire the lease.

public ValueTask<AcquisitionResult<TMetadata>?> TryAcquireOrRenewAsync<TArg>(LeaseIdentity identity, TArg arg, Func<TArg, TMetadata, CancellationToken, ValueTask<TMetadata>> updater, CancellationToken token = default)

Tries to acquire or renew the lease.

public ValueTask<AcquisitionResult<TMetadata>?> TryAcquireOrRenewAsync(LeaseIdentity identity, CancellationToken token = default)

Tries to acquire or renew the lease.

public ValueTask<AcquisitionResult<TMetadata>?> TryRenewAsync<TArg>(LeaseIdentity identity, bool reacquire, TArg arg, Func<TArg, TMetadata, CancellationToken, ValueTask<TMetadata>> updater, CancellationToken token = default)

Tries to renew the lease.

public ValueTask<AcquisitionResult<TMetadata>?> TryRenewAsync(LeaseIdentity identity, bool reacquire, CancellationToken token = default)

Tries to renew the lease.

protected abstract ValueTask<bool> TryUpdateStateAsync(State<TMetadata> state, CancellationToken token)

public ValueTask<LeaseIdentity> UnsafeReleaseAsync<TArg>(TArg arg, Func<TArg, TMetadata, CancellationToken, ValueTask<TMetadata>> updater, CancellationToken token = default)

Releases the lease ungracefully.

Releases the lease ungracefully.

public ValueTask<LeaseIdentity?> UnsafeTryReleaseAsync<TArg>(TArg arg, Func<TArg, TMetadata, CancellationToken, ValueTask<TMetadata>> updater, CancellationToken token = default)

Tries to release the lease ungracefully.

Tries to release the lease ungracefully.