File tree Expand file tree Collapse file tree 1 file changed +13
-4
lines changed
Lib.AspNetCore.ServerSentEvents Expand file tree Collapse file tree 1 file changed +13
-4
lines changed Original file line number Diff line number Diff line change @@ -153,18 +153,27 @@ internal Task SendEventAsync(ServerSentEventBytes serverSentEventBytes)
153153
154154 private Task ForAllClientsAsync ( Func < ServerSentEventsClient , Task > clientOperationAsync )
155155 {
156- int clientTaskIndex = 0 ;
157- Task [ ] clientsTasks = new Task [ _clients . Values . Count ] ;
156+ List < Task > clientsTasks = null ;
158157
159158 foreach ( ServerSentEventsClient client in _clients . Values )
160159 {
161160 if ( client . IsConnected )
162161 {
163- clientsTasks [ clientTaskIndex ++ ] = clientOperationAsync ( client ) ;
162+ Task operationTask = clientOperationAsync ( client ) ;
163+
164+ if ( operationTask . Status != TaskStatus . RanToCompletion )
165+ {
166+ if ( clientsTasks is null )
167+ {
168+ clientsTasks = new List < Task > ( ) ;
169+ }
170+
171+ clientsTasks . Add ( operationTask ) ;
172+ }
164173 }
165174 }
166175
167- return Task . WhenAll ( clientsTasks ) ;
176+ return ( clientsTasks is null ) ? Task . CompletedTask : Task . WhenAll ( clientsTasks ) ;
168177 }
169178 #endregion
170179 }
You can’t perform that action at this time.
0 commit comments