29 lines
No EOL
703 B
C#
29 lines
No EOL
703 B
C#
using System.Threading.Tasks;
|
|
|
|
namespace PhoenixLib.DAL.Redis.Locks
|
|
{
|
|
public sealed class RedisScopedLock : IScopedLock
|
|
{
|
|
private readonly string _lockKey;
|
|
private readonly ILockService _lockService;
|
|
|
|
public RedisScopedLock(string lockKey, ILockService lockService, bool isLockAcquired)
|
|
{
|
|
_lockKey = lockKey;
|
|
_lockService = lockService;
|
|
IsAcquired = isLockAcquired;
|
|
}
|
|
|
|
public async ValueTask DisposeAsync()
|
|
{
|
|
if (!IsAcquired)
|
|
{
|
|
return;
|
|
}
|
|
|
|
await _lockService.TryFreeLock(_lockKey);
|
|
}
|
|
|
|
public bool IsAcquired { get; }
|
|
}
|
|
} |