@@ -34,22 +34,24 @@ public async Task Dispose_WaitsForAllLeases_AndSignalsOnEmptyExactlyOnce()
3434 var rnd = Random . Shared ;
3535 for ( var j = 0 ; j < 10 ; j ++ )
3636 {
37+ ISession s ;
3738 try
3839 {
39- var s = await source . OpenSession ( CancellationToken . None ) ;
40+ s = await source . OpenSession ( CancellationToken . None ) ;
4041 opened . Inc ( ) ;
4142
4243 await Task . Delay ( rnd . Next ( 0 , 5 ) ) ;
43-
44- s . Dispose ( ) ;
45- closed . Inc ( ) ;
46-
47- var s2 = await source . OpenSession ( CancellationToken . None ) ;
48- s2 . Dispose ( ) ;
4944 }
5045 catch ( ObjectDisposedException )
5146 {
47+ return ;
5248 }
49+
50+ var s2 = await source . OpenSession ( CancellationToken . None ) ;
51+ s2 . Dispose ( ) ;
52+
53+ s . Dispose ( ) ;
54+ closed . Inc ( ) ;
5355 }
5456 } ) . ToArray ( ) ;
5557
@@ -82,22 +84,24 @@ public async Task Stress_Counts_AreBalanced()
8284 var rnd = Random . Shared ;
8385 for ( var j = 0 ; j < 10 ; j ++ )
8486 {
87+ ISession s ;
8588 try
8689 {
87- var s = await source . OpenSession ( CancellationToken . None ) ;
90+ s = await source . OpenSession ( CancellationToken . None ) ;
8891 opened . Inc ( ) ;
8992
9093 await Task . Delay ( rnd . Next ( 0 , 3 ) ) ;
91-
92- s . Dispose ( ) ;
93- closed . Inc ( ) ;
94-
95- var s2 = await source . OpenSession ( CancellationToken . None ) ;
96- s2 . Dispose ( ) ;
9794 }
9895 catch ( ObjectDisposedException )
9996 {
97+ return ;
10098 }
99+
100+ var s2 = await source . OpenSession ( CancellationToken . None ) ;
101+ s2 . Dispose ( ) ;
102+
103+ s . Dispose ( ) ;
104+ closed . Inc ( ) ;
101105 }
102106 } ) . ToArray ( ) ;
103107
@@ -120,20 +124,21 @@ public async Task Open_RacingWithDispose_StateRemainsConsistent()
120124
121125 var opens = Enumerable . Range ( 0 , 1000 ) . Select ( async _ =>
122126 {
127+ ISession s ;
123128 try
124129 {
125- var s = await source . OpenSession ( CancellationToken . None ) ;
126- s . Dispose ( ) ;
127-
128- var s2 = await source . OpenSession ( CancellationToken . None ) ;
129- s2 . Dispose ( ) ;
130-
131- return 1 ;
130+ s = await source . OpenSession ( CancellationToken . None ) ;
132131 }
133132 catch ( ObjectDisposedException )
134133 {
135134 return 0 ;
136135 }
136+
137+ var s2 = await source . OpenSession ( CancellationToken . None ) ;
138+ s2 . Dispose ( ) ;
139+
140+ s . Dispose ( ) ;
141+ return 1 ;
137142 } ) . ToArray ( ) ;
138143
139144 var disposeTask = Task . Run ( async ( ) =>
0 commit comments