File tree 1 file changed +21
-15
lines changed
projects/Test/Integration
1 file changed +21
-15
lines changed Original file line number Diff line number Diff line change @@ -92,31 +92,37 @@ public async Task TestUnthrottledFloodPublishing()
92
92
return Task . CompletedTask ;
93
93
} ;
94
94
95
- var publishTasks = new List < Task > ( ) ;
96
95
var stopwatch = Stopwatch . StartNew ( ) ;
97
- int i = 0 ;
98
96
int publishCount = 0 ;
99
97
try
100
98
{
101
- for ( i = 0 ; i < 65535 * 64 ; i ++ )
99
+ var tasks = new List < Task > ( ) ;
100
+ for ( int j = 0 ; j < 64 ; j ++ )
102
101
{
103
- if ( i % 65536 == 0 )
102
+ tasks . Add ( Task . Run ( async ( ) =>
104
103
{
105
- if ( stopwatch . Elapsed > FiveSeconds )
104
+ var publishTasks = new List < Task > ( ) ;
105
+ for ( int i = 0 ; i < 65536 * 2 ; i ++ )
106
106
{
107
- break ;
108
- }
109
- }
107
+ if ( stopwatch . Elapsed > FiveSeconds )
108
+ {
109
+ await Task . WhenAll ( publishTasks ) . WaitAsync ( ShortSpan ) ;
110
+ publishTasks . Clear ( ) ;
111
+ break ;
112
+ }
110
113
111
- publishCount ++ ;
112
- publishTasks . Add ( _channel . BasicPublishAsync ( CachedString . Empty , CachedString . Empty , _body ) . AsTask ( ) ) ;
114
+ Interlocked . Increment ( ref publishCount ) ;
115
+ publishTasks . Add ( _channel . BasicPublishAsync ( CachedString . Empty , CachedString . Empty , _body ) . AsTask ( ) ) ;
113
116
114
- if ( i % 500 == 0 )
115
- {
116
- await Task . WhenAll ( publishTasks ) . WaitAsync ( ShortSpan ) ;
117
- publishTasks . Clear ( ) ;
118
- }
117
+ if ( i % 500 == 0 )
118
+ {
119
+ await Task . WhenAll ( publishTasks ) . WaitAsync ( ShortSpan ) ;
120
+ publishTasks . Clear ( ) ;
121
+ }
122
+ }
123
+ } ) ) ;
119
124
}
125
+ await Task . WhenAll ( tasks ) . WaitAsync ( WaitSpan ) ;
120
126
}
121
127
finally
122
128
{
You can’t perform that action at this time.
0 commit comments