Skip to content

Commit

Permalink
fix unsubscribe
Browse files Browse the repository at this point in the history
  • Loading branch information
badrishc committed Jul 6, 2023
1 parent abc1850 commit 110f9eb
Showing 1 changed file with 11 additions and 9 deletions.
20 changes: 11 additions & 9 deletions cs/remote/src/FASTER.server/PubSub/SubscribeBroker.cs
Original file line number Diff line number Diff line change
Expand Up @@ -271,13 +271,14 @@ public unsafe bool Unsubscribe(byte* key, ServerSessionBase session)
var start = key;
keySerializer.ReadKeyByRef(ref key);
var subscriptionKey = new Span<byte>(start, (int)(key - start)).ToArray();
if (subscriptions != null)
if (subscriptions == null) return ret;
if (subscriptions.TryGetValue(subscriptionKey, out var subscriptionDict))
{
if (subscriptions.TryGetValue(subscriptionKey, out var subscriptionDict))
foreach (var sid in subscriptionDict.Keys)
{
foreach (var sid in subscriptionDict.Keys)
if (subscriptionDict.TryGetValue(sid, out var _session))
{
if (subscriptionDict[sid] == session)
if (_session == session)
{
subscriptionDict.TryRemove(sid, out _);
ret = true;
Expand All @@ -300,15 +301,16 @@ public unsafe void PUnsubscribe(byte* key, ServerSessionBase session)
var start = key;
keySerializer.ReadKeyByRef(ref key);
var subscriptionKey = new Span<byte>(start, (int)(key - start)).ToArray();
if (prefixSubscriptions != null)
if (prefixSubscriptions == null) return;
if (prefixSubscriptions.ContainsKey(subscriptionKey))
{
if (prefixSubscriptions.ContainsKey(subscriptionKey))
if (prefixSubscriptions.TryGetValue(subscriptionKey, out var subscriptionDict))
{
foreach (var sid in subscriptionDict.Item2.Keys)
{
prefixSubscriptions.TryGetValue(subscriptionKey, out var subscriptionDict);
foreach (var sid in subscriptionDict.Item2.Keys)
if (subscriptionDict.Item2.TryGetValue(sid, out var _session))
{
if (subscriptionDict.Item2[sid] == session)
if (_session != session)
{
subscriptionDict.Item2.TryRemove(sid, out _);
break;
Expand Down

0 comments on commit 110f9eb

Please sign in to comment.