Skip to content

Commit a1dfa4d

Browse files
committed
remove allocations to keep style of surrounding code
1 parent 681ce59 commit a1dfa4d

File tree

3 files changed

+26
-7
lines changed

3 files changed

+26
-7
lines changed

.vscode/settings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@
1111
"MD025": {
1212
"front_matter_title": ""
1313
}
14-
}
14+
},
15+
"cmake.sourceDirectory": "/Users/datwelk/Dev/LIVEOP/aspnetcore/node_modules/bare-fs"
1516
}

src/SignalR/server/Core/src/DefaultHubLifetimeManager.cs

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -225,8 +225,8 @@ public override Task SendGroupAsync(string groupName, string methodName, object?
225225
public override Task SendGroupsAsync(IReadOnlyList<string> groupNames, string methodName, object?[] args, CancellationToken cancellationToken = default)
226226
{
227227
// Each task represents the list of tasks for each of the writes within a group
228-
List<Task>? tasks = new List<Task>();
229-
var connections = new HashSet<string>();
228+
List<Task>? tasks = null;
229+
HashSet<string>? connections = null;
230230

231231
foreach (var groupName in groupNames)
232232
{
@@ -240,14 +240,25 @@ public override Task SendGroupsAsync(IReadOnlyList<string> groupNames, string me
240240
{
241241
foreach (var connection in group)
242242
{
243+
if (connections == null)
244+
{
245+
connections = new HashSet<string>();
246+
}
243247
connections.Add(connection.Key);
244248
}
245249
}
246250
}
247251

248-
foreach (var connectionId in connections)
252+
if (connections != null)
249253
{
250-
tasks.Add(SendConnectionAsync(connectionId, methodName, args, cancellationToken));
254+
foreach (var connectionId in connections)
255+
{
256+
if (tasks == null)
257+
{
258+
tasks = new List<Task>();
259+
}
260+
tasks.Add(SendConnectionAsync(connectionId, methodName, args, cancellationToken));
261+
}
251262
}
252263

253264
if (tasks != null)

src/SignalR/server/StackExchangeRedis/src/RedisHubLifetimeManager.cs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ public override Task SendConnectionsAsync(IReadOnlyList<string> connectionIds, s
257257
public override async Task SendGroupsAsync(IReadOnlyList<string> groupNames, string methodName, object?[] args, CancellationToken cancellationToken = default)
258258
{
259259
ArgumentNullException.ThrowIfNull(groupNames);
260-
var connections = new HashSet<string>();
260+
HashSet<string>? connections = null;
261261

262262
foreach (var groupName in groupNames)
263263
{
@@ -271,14 +271,21 @@ public override async Task SendGroupsAsync(IReadOnlyList<string> groupNames, str
271271
{
272272
foreach (var connection in connectionStore)
273273
{
274+
if (connections == null)
275+
{
276+
connections = new HashSet<string>();
277+
}
274278
connections.Add(connection.ConnectionId);
275279
}
276280
}
277281
}
278282
}
279283
}
280284

281-
await SendConnectionsAsync(connections.ToList(), methodName, args, cancellationToken);
285+
if (connections != null)
286+
{
287+
await SendConnectionsAsync(connections.ToList(), methodName, args, cancellationToken);
288+
}
282289
}
283290

284291
/// <inheritdoc />

0 commit comments

Comments
 (0)