public static TUpgradeableHandle AcquireUpgradeableReadLock <THandle, TUpgradeableHandle>(IInternalDistributedUpgradeableReaderWriterLock <THandle, TUpgradeableHandle> @lock, TimeSpan?timeout, CancellationToken cancellationToken) where THandle : class, IDistributedSynchronizationHandle where TUpgradeableHandle : class, IDistributedLockUpgradeableHandle => SyncViaAsync.Run( state => AcquireUpgradeableReadLockAsync(state.@lock, state.timeout, state.cancellationToken), (@lock, timeout, cancellationToken) );
public static ValueTask <TUpgradeableHandle> AcquireUpgradeableReadLockAsync <THandle, TUpgradeableHandle>(IInternalDistributedUpgradeableReaderWriterLock <THandle, TUpgradeableHandle> @lock, TimeSpan?timeout, CancellationToken cancellationToken) where THandle : class, IDistributedSynchronizationHandle where TUpgradeableHandle : class, IDistributedLockUpgradeableHandle => @lock.InternalTryAcquireUpgradeableReadLockAsync(timeout, cancellationToken).ThrowTimeoutIfNull();