diff options
author | Brennan <brecon@microsoft.com> | 2022-05-07 01:55:00 +0300 |
---|---|---|
committer | Brennan <brecon@microsoft.com> | 2022-05-07 01:55:00 +0300 |
commit | 7336f4d90d2efd36ef57021a2f8742d296da7ab2 (patch) | |
tree | 8b704e621fa0ef7d702ed75db11036dedaf24090 | |
parent | bc42cade7ce0b1149ab9bdc30c78094b3007fd67 (diff) |
Make SignalR Redis test thread-safebrecon/redist
-rw-r--r-- | src/SignalR/server/StackExchangeRedis/test/TestConnectionMultiplexer.cs | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/SignalR/server/StackExchangeRedis/test/TestConnectionMultiplexer.cs b/src/SignalR/server/StackExchangeRedis/test/TestConnectionMultiplexer.cs index a6671a44fa..99190e6488 100644 --- a/src/SignalR/server/StackExchangeRedis/test/TestConnectionMultiplexer.cs +++ b/src/SignalR/server/StackExchangeRedis/test/TestConnectionMultiplexer.cs @@ -232,9 +232,12 @@ public class TestRedisServer { if (_subscriptions.TryGetValue(channel, out var handlers)) { - foreach (var (_, handler) in handlers) + lock (handlers) { - handler(channel, message); + foreach (var (_, handler) in handlers) + { + handler(channel, message); + } } } @@ -253,7 +256,10 @@ public class TestRedisServer _subscriptions.AddOrUpdate(messageQueue.Channel, _ => new List<(int, Action<RedisChannel, RedisValue>)> { (subscriberId, handler) }, (_, list) => { - list.Add((subscriberId, handler)); + lock (list) + { + list.Add((subscriberId, handler)); + } return list; }); } @@ -262,7 +268,10 @@ public class TestRedisServer { if (_subscriptions.TryGetValue(channel, out var list)) { - list.RemoveAll((item) => item.Item1 == subscriberId); + lock (list) + { + list.RemoveAll((item) => item.Item1 == subscriberId); + } } } } |