Review code style to match with the existing code

This commit is contained in:
Sébastien Warin
2018-05-16 10:00:29 +02:00
parent ba66c108fa
commit c1352d50c1
5 changed files with 72 additions and 69 deletions
@@ -7,34 +7,42 @@ namespace MQTTnet.Internal
// From Stephen Toub (https://blogs.msdn.microsoft.com/pfxteam/2012/02/12/building-async-coordination-primitives-part-6-asynclock/)
public sealed class AsyncLock : IDisposable
{
private readonly SemaphoreSlim m_semaphore = new SemaphoreSlim(1, 1);
private readonly Task<IDisposable> m_releaser;
private readonly SemaphoreSlim _semaphore = new SemaphoreSlim(1, 1);
private readonly Task<IDisposable> _releaser;
public AsyncLock()
{
m_releaser = Task.FromResult((IDisposable)new Releaser(this));
_releaser = Task.FromResult((IDisposable)new Releaser(this));
}
public Task<IDisposable> LockAsync(CancellationToken cancellationToken)
{
var wait = m_semaphore.WaitAsync(cancellationToken);
Task wait = _semaphore.WaitAsync(cancellationToken);
return wait.IsCompleted ?
m_releaser :
_releaser :
wait.ContinueWith((_, state) => (IDisposable)state,
m_releaser.Result, cancellationToken,
_releaser.Result, cancellationToken,
TaskContinuationOptions.ExecuteSynchronously, TaskScheduler.Default);
}
public void Dispose()
{
this.m_semaphore?.Dispose();
_semaphore?.Dispose();
}
private sealed class Releaser : IDisposable
{
private readonly AsyncLock m_toRelease;
internal Releaser(AsyncLock toRelease) { m_toRelease = toRelease; }
public void Dispose() { m_toRelease.m_semaphore.Release(); }
private readonly AsyncLock _toRelease;
internal Releaser(AsyncLock toRelease)
{
_toRelease = toRelease;
}
public void Dispose()
{
_toRelease._semaphore.Release();
}
}
}
}