Merge branch 'master' of ssh://opensimulator.org/var/git/opensim

cpu-performance
Diva Canto 2013-06-07 16:01:07 -07:00
commit 6aa54a8e16
5 changed files with 14 additions and 8 deletions

View File

@ -75,11 +75,12 @@ what it is today.
* controlbreak * controlbreak
* coyled * coyled
* Daedius * Daedius
* Dong Jun Lan (IBM)
* DoranZemlja
* daTwitch * daTwitch
* devalnor-#708 * devalnor-#708
* dmiles (Daxtron Labs) * dmiles (Daxtron Labs)
* Dong Jun Lan (IBM)
* DoranZemlja
* dr0b3rts
* dslake (Intel) * dslake (Intel)
* FredoChaplin * FredoChaplin
* Garmin Kawaguichi * Garmin Kawaguichi

View File

@ -4828,7 +4828,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
public void SendForceClientSelectObjects(List<uint> ObjectIDs) public void SendForceClientSelectObjects(List<uint> ObjectIDs)
{ {
m_log.WarnFormat("[LLCLIENTVIEW] sending select with {0} objects", ObjectIDs.Count); // m_log.DebugFormat("[LLCLIENTVIEW] sending select with {0} objects", ObjectIDs.Count);
bool firstCall = true; bool firstCall = true;
const int MAX_OBJECTS_PER_PACKET = 251; const int MAX_OBJECTS_PER_PACKET = 251;

View File

@ -685,7 +685,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
// //
// Try local // Try local
if (LocalFriendshipTerminated(exfriendID)) if (LocalFriendshipTerminated(client.AgentId, exfriendID))
return; return;
PresenceInfo[] friendSessions = PresenceService.GetAgents(new string[] { exfriendID.ToString() }); PresenceInfo[] friendSessions = PresenceService.GetAgents(new string[] { exfriendID.ToString() });
@ -827,13 +827,13 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
return false; return false;
} }
public bool LocalFriendshipTerminated(UUID exfriendID) public bool LocalFriendshipTerminated(UUID userID, UUID exfriendID)
{ {
IClientAPI friendClient = LocateClientObject(exfriendID); IClientAPI friendClient = LocateClientObject(exfriendID);
if (friendClient != null) if (friendClient != null)
{ {
// the friend in this sim as root agent // the friend in this sim as root agent
friendClient.SendTerminateFriend(exfriendID); friendClient.SendTerminateFriend(userID);
// update local cache // update local cache
RecacheFriends(friendClient); RecacheFriends(friendClient);
// we're done // we're done

View File

@ -193,7 +193,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
if (!UUID.TryParse(request["ToID"].ToString(), out toID)) if (!UUID.TryParse(request["ToID"].ToString(), out toID))
return FailureResult(); return FailureResult();
if (m_FriendsModule.LocalFriendshipTerminated(toID)) if (m_FriendsModule.LocalFriendshipTerminated(fromID, toID))
return SuccessResult(); return SuccessResult();
return FailureResult(); return FailureResult();

View File

@ -222,7 +222,12 @@ namespace OpenSim.Region.Framework.Scenes
public void SendCloseChildAgentConnections(UUID agentID, List<ulong> regionslst) public void SendCloseChildAgentConnections(UUID agentID, List<ulong> regionslst)
{ {
foreach (ulong handle in regionslst) foreach (ulong handle in regionslst)
Util.FireAndForget(delegate { SendCloseChildAgent(agentID, handle); }); {
// We must take a copy here since handle is acts like a reference when used in an iterator.
// This leads to race conditions if directly passed to SendCloseChildAgent with more than one neighbour region.
ulong handleCopy = handle;
Util.FireAndForget((o) => { SendCloseChildAgent(agentID, handleCopy); });
}
} }
public List<GridRegion> RequestNamedRegions(string name, int maxNumber) public List<GridRegion> RequestNamedRegions(string name, int maxNumber)