2
0
mirror of https://github.com/esiur/esiur-dotnet.git synced 2025-05-07 12:02:59 +00:00

unnecessary deattach

This commit is contained in:
Ahmed Zamil 2024-07-10 18:25:09 +03:00
parent 279b5f87e6
commit 68d1595542

View File

@ -223,15 +223,26 @@ partial class DistributedConnection
{ {
try try
{ {
var sendDetach = false;
if (attachedResources.ContainsKey(instanceId)) if (attachedResources.ContainsKey(instanceId))
{
attachedResources.Remove(instanceId); attachedResources.Remove(instanceId);
sendDetach = true;
}
if (suspendedResources.ContainsKey(instanceId)) if (suspendedResources.ContainsKey(instanceId))
{
suspendedResources.Remove(instanceId); suspendedResources.Remove(instanceId);
sendDetach = true;
}
return SendRequest(IIPPacketAction.DetachResource) if (sendDetach)
.AddUInt32(instanceId) return SendRequest(IIPPacketAction.DetachResource)
.Done(); .AddUInt32(instanceId)
.Done();
return null; // no one is waiting for this
} }
catch catch
{ {
@ -333,9 +344,17 @@ partial class DistributedConnection
DistributedResource r; DistributedResource r;
if (attachedResources[resourceId].TryGetTarget(out r)) if (attachedResources[resourceId].TryGetTarget(out r))
{
// remove from attached to avoid sending unnecessary deattach request when Destroy() is called
attachedResources.Remove(resourceId);
r.Destroy(); r.Destroy();
}
else
{
attachedResources.Remove(resourceId);
}
attachedResources.Remove(resourceId);
} }
else if (neededResources.Contains(resourceId)) else if (neededResources.Contains(resourceId))
{ {