@@ -19,26 +19,26 @@ public class ConcurrentList<T> : ListWrapper<T>, ISynchronizedCollection<T>
1919 public override int Count => _count ;
2020 private readonly ConcurrentQueue < T > _buffer = new ( ) ;
2121 private readonly ReaderWriterLockSlim _sync = new ( ) ;
22- private ReaderWriterLockSlim Sync
22+ private ReaderWriterLockSlim RWLock
2323 => AssertIsAlive ( ) ? _sync : null ! ;
2424
2525 protected override void OnDispose ( )
2626 {
2727 Clear ( ) ;
28- Sync . Dispose ( ) ;
28+ RWLock . Dispose ( ) ;
2929 base . OnDispose ( ) ;
3030 }
3131
3232 private void DumpBuffer ( )
3333 {
3434 if ( _buffer . IsEmpty ) return ;
35- using var write = Sync . WriteLock ( ) ;
35+ using var write = RWLock . WriteLock ( ) ;
3636 DumpBufferUnlocked ( ) ;
3737 }
3838
3939 private void DumpBufferUnlocked ( )
4040 {
41- Debug . Assert ( Sync . IsWriteLockHeld ) ;
41+ Debug . Assert ( RWLock . IsWriteLockHeld ) ;
4242 while ( _buffer . TryDequeue ( out var item ) )
4343 InternalSource . Add ( item ) ;
4444 }
@@ -77,18 +77,18 @@ protected override void AddInternal(T item)
7777 /// <inheritdoc />
7878 public override int IndexOf ( T item )
7979 {
80- int i = Sync . Read ( ( ) => base . IndexOf ( item ) ) ;
80+ int i = RWLock . Read ( ( ) => base . IndexOf ( item ) ) ;
8181 if ( i != - 1 || _buffer . IsEmpty ) return i ;
8282 DumpBuffer ( ) ; // one dump then accept results.
83- return Sync . Read ( ( ) => base . IndexOf ( item ) ) ;
83+ return RWLock . Read ( ( ) => base . IndexOf ( item ) ) ;
8484 }
8585
8686 /// <inheritdoc />
8787 public override void Insert ( int index , T item )
8888 {
8989 AssertValidIndex ( index ) ;
9090 DumpBuffer ( ) ;
91- using var write = Sync . WriteLock ( ) ;
91+ using var write = RWLock . WriteLock ( ) ;
9292 base . Insert ( index , item ) ;
9393 Interlocked . Increment ( ref _count ) ;
9494 }
@@ -103,15 +103,15 @@ public override void RemoveAt(int index)
103103
104104 private void RemoveAtCore ( int index )
105105 {
106- using var write = Sync . WriteLock ( ) ;
106+ using var write = RWLock . WriteLock ( ) ;
107107 base . RemoveAt ( index ) ;
108108 Interlocked . Decrement ( ref _count ) ;
109109 }
110110
111111 /// <inheritdoc />
112112 public override bool Remove ( T item )
113113 // Assume the majority case is that the item exists.
114- => Sync . ReadUpgradeable ( ( ) =>
114+ => RWLock . ReadUpgradeable ( ( ) =>
115115 {
116116 DumpBuffer ( ) ;
117117 int i = base . IndexOf ( item ) ;
@@ -122,7 +122,7 @@ public override bool Remove(T item)
122122
123123 /// <inheritdoc />
124124 public override void Clear ( )
125- => Sync . Write ( ( ) =>
125+ => RWLock . Write ( ( ) =>
126126 {
127127 DumpBufferUnlocked ( ) ;
128128 int i = InternalSource . Count ;
@@ -138,7 +138,7 @@ public override bool Contains(T item)
138138 public override void CopyTo ( T [ ] array , int arrayIndex )
139139 {
140140 DumpBuffer ( ) ;
141- Sync . Read ( ( ) => base . CopyTo ( array , arrayIndex ) ) ;
141+ RWLock . Read ( ( ) => base . CopyTo ( array , arrayIndex ) ) ;
142142 }
143143
144144 /// <inheritdoc />
@@ -152,6 +152,6 @@ public override IEnumerator<T> GetEnumerator()
152152 public T [ ] Snapshot ( )
153153 {
154154 DumpBuffer ( ) ;
155- return Sync . Read ( ( ) => InternalSource . ToArray ( ) ) ;
155+ return RWLock . Read ( ( ) => InternalSource . ToArray ( ) ) ;
156156 }
157157}
0 commit comments