@@ -11,7 +11,7 @@ namespace Ninject.Web.AspNetCore.Test.Unit
1111 public class DisposalManagerConcurrencyTest
1212 {
1313 [ Fact ]
14- public void CreateArea_FromDifferentConcurrentThreads_ShouldCreateSeparateRootAreas ( )
14+ public async Task CreateArea_FromDifferentConcurrentThreads_ShouldCreateSeparateRootAreas ( )
1515 {
1616 var disposalManager = new DisposalManager ( new FakeActivationCacheAccessor ( Enumerable . Empty < object > ( ) ) ) ;
1717 var barrier = new Barrier ( 2 ) ;
@@ -31,15 +31,15 @@ public void CreateArea_FromDifferentConcurrentThreads_ShouldCreateSeparateRootAr
3131 return identifier ;
3232 } ) ) . ToList ( ) ;
3333
34- var results = tasks . Select ( t => t . Result ) . ToList ( ) ;
34+ var results = ( await Task . WhenAll ( tasks ) ) . ToList ( ) ;
3535
3636 results . Count . Should ( ) . Be ( 2 ) ;
3737 results . All ( r => r . StartsWith ( "OrderedAggregateDisposalArea" ) ) . Should ( ) . BeTrue ( ) ;
3838 results [ 0 ] . Should ( ) . NotBe ( results [ 1 ] ) ;
3939 }
4040
4141 [ Fact ]
42- public void ServiceDisposal_FromDifferentConcurrentThreads_ShouldDisposeServicesSeparately ( )
42+ public async Task ServiceDisposal_FromDifferentConcurrentThreads_ShouldDisposeServicesSeparately ( )
4343 {
4444 var taskCount = 7 ;
4545 var serviceCount = 100 ;
@@ -52,18 +52,16 @@ public void ServiceDisposal_FromDifferentConcurrentThreads_ShouldDisposeServices
5252 var tasks = Enumerable . Range ( 0 , taskCount ) . Select ( index => Task . Run ( ( ) =>
5353 {
5454 barrier . SignalAndWait ( ) ;
55- using ( var area = disposalManager . CreateArea ( ) )
56- {
57- barrier . SignalAndWait ( ) ;
55+ using var area = disposalManager . CreateArea ( ) ;
56+ barrier . SignalAndWait ( ) ;
5857
59- foreach ( var r in references . Where ( ( _ , referenceIndex ) => referenceIndex % ( taskCount + 1 ) == index ) )
60- {
61- disposalManager . RemoveInstance ( new Activation . InstanceReference { Instance = r } ) ;
62- }
58+ foreach ( var r in references . Where ( ( _ , referenceIndex ) => referenceIndex % ( taskCount + 1 ) == index ) )
59+ {
60+ disposalManager . RemoveInstance ( new Activation . InstanceReference { Instance = r } ) ;
6361 }
6462 } ) ) . ToList ( ) ;
6563
66- Task . WaitAll ( tasks . ToArray ( ) ) ;
64+ await Task . WhenAll ( tasks . ToArray ( ) ) ;
6765
6866 references . Where ( ( _ , index ) => index % ( taskCount + 1 ) < taskCount ) . All ( r => r . IsDisposed ) . Should ( ) . BeTrue ( ) ;
6967 references . Where ( ( _ , index ) => index % ( taskCount + 1 ) == taskCount ) . All ( r => r . IsDisposed ) . Should ( ) . BeFalse ( ) ;
0 commit comments