Eliminate multiple updates on link/unlink

mysql-performance
Melanie 2009-12-06 00:02:24 +00:00
parent f8cc409034
commit e3a22ff37d
3 changed files with 14 additions and 4 deletions

View File

@ -1593,6 +1593,8 @@ namespace OpenSim.Region.Framework.Scenes
// occur on link to invoke this elsewhere (such as object selection) // occur on link to invoke this elsewhere (such as object selection)
parentGroup.RootPart.AddFlag(PrimFlags.CreateSelected); parentGroup.RootPart.AddFlag(PrimFlags.CreateSelected);
parentGroup.TriggerScriptChangedEvent(Changed.LINK); parentGroup.TriggerScriptChangedEvent(Changed.LINK);
parentGroup.HasGroupChanged = true;
parentGroup.ScheduleGroupForFullUpdate();
if (client != null) if (client != null)
{ {

View File

@ -2207,8 +2207,8 @@ namespace OpenSim.Region.Framework.Scenes
// unmoved prims! // unmoved prims!
ResetChildPrimPhysicsPositions(); ResetChildPrimPhysicsPositions();
HasGroupChanged = true; //HasGroupChanged = true;
ScheduleGroupForFullUpdate(); //ScheduleGroupForFullUpdate();
} }
/// <summary> /// <summary>
@ -2299,8 +2299,8 @@ namespace OpenSim.Region.Framework.Scenes
linkPart.Rezzed = RootPart.Rezzed; linkPart.Rezzed = RootPart.Rezzed;
HasGroupChanged = true; //HasGroupChanged = true;
ScheduleGroupForFullUpdate(); //ScheduleGroupForFullUpdate();
} }
/// <summary> /// <summary>

View File

@ -3523,6 +3523,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
{ {
parentPrim.DelinkFromGroup(part.LocalId, true); parentPrim.DelinkFromGroup(part.LocalId, true);
} }
parentPrim.HasGroupChanged = true;
parentPrim.ScheduleGroupForFullUpdate();
parentPrim.TriggerScriptChangedEvent(Changed.LINK); parentPrim.TriggerScriptChangedEvent(Changed.LINK);
if (parts.Count > 0) if (parts.Count > 0)
@ -3534,6 +3536,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
part.UpdateFlag = 0; part.UpdateFlag = 0;
newRoot.ParentGroup.LinkToGroup(part.ParentGroup); newRoot.ParentGroup.LinkToGroup(part.ParentGroup);
} }
newRoot.ParentGroup.HasGroupChanged = true;
newRoot.ParentGroup.ScheduleGroupForFullUpdate();
} }
} }
else else
@ -3542,6 +3546,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
return; return;
parentPrim.DelinkFromGroup(childPrim.LocalId, true); parentPrim.DelinkFromGroup(childPrim.LocalId, true);
parentPrim.HasGroupChanged = true;
parentPrim.ScheduleGroupForFullUpdate();
parentPrim.TriggerScriptChangedEvent(Changed.LINK); parentPrim.TriggerScriptChangedEvent(Changed.LINK);
} }
} }
@ -3561,6 +3567,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
parentPrim.DelinkFromGroup(part.LocalId, true); parentPrim.DelinkFromGroup(part.LocalId, true);
parentPrim.TriggerScriptChangedEvent(Changed.LINK); parentPrim.TriggerScriptChangedEvent(Changed.LINK);
} }
parentPrim.HasGroupChanged = true;
parentPrim.ScheduleGroupForFullUpdate();
} }
public LSL_String llGetLinkKey(int linknum) public LSL_String llGetLinkKey(int linknum)