Browse Source

Merge branch 'semaphoresliminlining' of https://github.com/MarkCiliaVincenti/abp into semaphoresliminlining

pull/21065/head
Mark Cilia Vincenti 2 years ago
parent
commit
3f2c5be42d
  1. 12
      framework/src/Volo.Abp.Core/Volo/Abp/Threading/SemaphoreSlimExtensions.cs
  2. 2
      framework/src/Volo.Abp.DistributedLocking.Abstractions/Volo/Abp/DistributedLocking/LocalAbpDistributedLock.cs

12
framework/src/Volo.Abp.Core/Volo/Abp/Threading/SemaphoreSlimExtensions.cs

@ -10,21 +10,21 @@ public static class SemaphoreSlimExtensions
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public async static ValueTask<IDisposable> LockAsync(this SemaphoreSlim semaphoreSlim) public async static ValueTask<IDisposable> LockAsync(this SemaphoreSlim semaphoreSlim)
{ {
await semaphoreSlim.WaitAsync().ConfigureAwait(false); await semaphoreSlim.WaitAsync();
return GetDispose(semaphoreSlim); return GetDispose(semaphoreSlim);
} }
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public async static ValueTask<IDisposable> LockAsync(this SemaphoreSlim semaphoreSlim, CancellationToken cancellationToken) public async static ValueTask<IDisposable> LockAsync(this SemaphoreSlim semaphoreSlim, CancellationToken cancellationToken)
{ {
await semaphoreSlim.WaitAsync(cancellationToken).ConfigureAwait(false); await semaphoreSlim.WaitAsync(cancellationToken);
return GetDispose(semaphoreSlim); return GetDispose(semaphoreSlim);
} }
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public async static ValueTask<IDisposable> LockAsync(this SemaphoreSlim semaphoreSlim, int millisecondsTimeout) public async static ValueTask<IDisposable> LockAsync(this SemaphoreSlim semaphoreSlim, int millisecondsTimeout)
{ {
if (await semaphoreSlim.WaitAsync(millisecondsTimeout).ConfigureAwait(false)) if (await semaphoreSlim.WaitAsync(millisecondsTimeout))
{ {
return GetDispose(semaphoreSlim); return GetDispose(semaphoreSlim);
} }
@ -35,7 +35,7 @@ public static class SemaphoreSlimExtensions
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public async static ValueTask<IDisposable> LockAsync(this SemaphoreSlim semaphoreSlim, int millisecondsTimeout, CancellationToken cancellationToken) public async static ValueTask<IDisposable> LockAsync(this SemaphoreSlim semaphoreSlim, int millisecondsTimeout, CancellationToken cancellationToken)
{ {
if (await semaphoreSlim.WaitAsync(millisecondsTimeout, cancellationToken).ConfigureAwait(false)) if (await semaphoreSlim.WaitAsync(millisecondsTimeout, cancellationToken))
{ {
return GetDispose(semaphoreSlim); return GetDispose(semaphoreSlim);
} }
@ -46,7 +46,7 @@ public static class SemaphoreSlimExtensions
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public async static ValueTask<IDisposable> LockAsync(this SemaphoreSlim semaphoreSlim, TimeSpan timeout) public async static ValueTask<IDisposable> LockAsync(this SemaphoreSlim semaphoreSlim, TimeSpan timeout)
{ {
if (await semaphoreSlim.WaitAsync(timeout).ConfigureAwait(false)) if (await semaphoreSlim.WaitAsync(timeout))
{ {
return GetDispose(semaphoreSlim); return GetDispose(semaphoreSlim);
} }
@ -57,7 +57,7 @@ public static class SemaphoreSlimExtensions
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public async static ValueTask<IDisposable> LockAsync(this SemaphoreSlim semaphoreSlim, TimeSpan timeout, CancellationToken cancellationToken) public async static ValueTask<IDisposable> LockAsync(this SemaphoreSlim semaphoreSlim, TimeSpan timeout, CancellationToken cancellationToken)
{ {
if (await semaphoreSlim.WaitAsync(timeout, cancellationToken).ConfigureAwait(false)) if (await semaphoreSlim.WaitAsync(timeout, cancellationToken))
{ {
return GetDispose(semaphoreSlim); return GetDispose(semaphoreSlim);
} }

2
framework/src/Volo.Abp.DistributedLocking.Abstractions/Volo/Abp/DistributedLocking/LocalAbpDistributedLock.cs

@ -30,7 +30,7 @@ public class LocalAbpDistributedLock : IAbpDistributedLock, ISingletonDependency
Check.NotNullOrWhiteSpace(name, nameof(name)); Check.NotNullOrWhiteSpace(name, nameof(name));
var key = DistributedLockKeyNormalizer.NormalizeKey(name); var key = DistributedLockKeyNormalizer.NormalizeKey(name);
var timeoutReleaser = await _localSyncObjects.LockAsync(key, timeout, cancellationToken).ConfigureAwait(false); var timeoutReleaser = await _localSyncObjects.LockAsync(key, timeout, cancellationToken);
if (!timeoutReleaser.EnteredSemaphore) if (!timeoutReleaser.EnteredSemaphore)
{ {
timeoutReleaser.Dispose(); timeoutReleaser.Dispose();

Loading…
Cancel
Save