fix(bridge): release command service registration ownership
Publish UPM package / publish (push) Successful in 2s
Publish NuGet packages / publish (push) Successful in 4m53s

This commit is contained in:
2026-09-29 10:14:40 +08:00
parent af97af183b
commit b1c42ea4ab
4 changed files with 23 additions and 13 deletions
+4 -4
View File
@@ -1,7 +1,7 @@
#nullable enable
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using Cysharp.Threading.Tasks;
using ShrinkNetwork;
@@ -12,7 +12,7 @@ namespace ShrinkCommand.Integration
public const string ExecuteRoute = "command/execute";
private static readonly object SyncRoot = new();
private static readonly HashSet<ShrinkNetworkService> RegisteredServices = new();
private static readonly ConditionalWeakTable<ShrinkNetworkService, object> RegisteredServices = new();
public static void RegisterService(
ShrinkNetworkService networkService,
@@ -26,9 +26,9 @@ namespace ShrinkCommand.Integration
lock (SyncRoot)
{
if (RegisteredServices.Contains(networkService))
if (RegisteredServices.TryGetValue(networkService, out _))
return;
RegisteredServices.Add(networkService);
RegisteredServices.Add(networkService, new object());
}
options ??= new ShrinkNetworkCommandBridgeOptions();