Skip to content

Commit 45b3b51

Browse files
Fix
1 parent b3acc38 commit 45b3b51

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

src/NHibernate/Util/AsyncReaderWriterLock.cs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ namespace NHibernate.Util
99
// https://devblogs.microsoft.com/pfxteam/building-async-coordination-primitives-part-7-asyncreaderwriterlock/
1010
internal class AsyncReaderWriterLock : IDisposable, Cache.ICacheLock
1111
{
12-
private readonly Lock _writeLockLock = LockFactory.Create();
1312
private readonly SemaphoreSlim _writeLockSemaphore = new SemaphoreSlim(1, 1);
1413
private readonly SemaphoreSlim _readLockSemaphore = new SemaphoreSlim(0, 1);
1514
private readonly Releaser _writerReleaser;
@@ -49,7 +48,7 @@ public Releaser WriteLock()
4948
if (!CanEnterWriteLock(out var waitForReadLocks))
5049
{
5150
_writeLockSemaphore.Wait();
52-
lock (_writeLockLock)
51+
lock (_writeLockSemaphore)
5352
{
5453
_writersWaiting--;
5554
}
@@ -75,7 +74,7 @@ public async Task<Releaser> WriteLockAsync()
7574
if (!CanEnterWriteLock(out var waitForReadLocks))
7675
{
7776
await _writeLockSemaphore.WaitAsync().ConfigureAwait(false);
78-
lock (_writeLockLock)
77+
lock (_writeLockSemaphore)
7978
{
8079
_writersWaiting--;
8180
}
@@ -127,7 +126,7 @@ async Task<Releaser> ReadLockInternalAsync()
127126

128127
public void Dispose()
129128
{
130-
lock (_writeLockLock)
129+
lock (_writeLockSemaphore)
131130
{
132131
_writeLockSemaphore.Dispose();
133132
_readLockSemaphore.Dispose();
@@ -140,7 +139,7 @@ public void Dispose()
140139
private bool CanEnterWriteLock(out bool waitForReadLocks)
141140
{
142141
waitForReadLocks = false;
143-
lock (_writeLockLock)
142+
lock (_writeLockSemaphore)
144143
{
145144
AssertNotDisposed();
146145
if (_writeLockSemaphore.CurrentCount > 0 && _writeLockSemaphore.Wait(0))
@@ -157,7 +156,7 @@ private bool CanEnterWriteLock(out bool waitForReadLocks)
157156

158157
private void ExitWriteLock()
159158
{
160-
lock (_writeLockLock)
159+
lock (_writeLockSemaphore)
161160
{
162161
AssertNotDisposed();
163162
if (_writeLockSemaphore.CurrentCount == 1)
@@ -188,7 +187,7 @@ private void ExitWriteLock()
188187

189188
private bool CanEnterReadLock(out SemaphoreSlim waitingReadLockSemaphore)
190189
{
191-
lock (_writeLockLock)
190+
lock (_writeLockSemaphore)
192191
{
193192
AssertNotDisposed();
194193
if (_writersWaiting == 0 && _writeLockSemaphore.CurrentCount > 0)
@@ -213,7 +212,7 @@ private bool CanEnterReadLock(out SemaphoreSlim waitingReadLockSemaphore)
213212

214213
private void ExitReadLock()
215214
{
216-
lock (_writeLockLock)
215+
lock (_writeLockSemaphore)
217216
{
218217
AssertNotDisposed();
219218
if (_currentReaders == 0)

0 commit comments

Comments
 (0)