@@ -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