From 963cf25813ad2bd6dceaa39757391fbf94d6f09e Mon Sep 17 00:00:00 2001 From: Adam Frisby Date: Sun, 13 Dec 2009 03:04:16 +1100 Subject: * Implements OSSL function: osGetSimulatorMemory - returns the current amount of memory allocated to the simulator process (Moderate Threat Level). * Cleans redundant information out of the Simulator Version. Versions now look like: "OpenSimulator 0.6.9(dev) Unix/Mono" * [Minor] additional log info for MySQLInventoryData --- OpenSim/Data/MySQL/MySQLInventoryData.cs | 3 +++ OpenSim/Framework/Util.cs | 20 ++++++++++++++++++++ OpenSim/Region/Framework/Scenes/Scene.cs | 5 +++++ .../Shared/Api/Implementation/OSSL_Api.cs | 13 +++++++++++++ .../ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs | 2 ++ .../ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs | 10 ++++++++++ 6 files changed, 53 insertions(+) (limited to 'OpenSim') diff --git a/OpenSim/Data/MySQL/MySQLInventoryData.cs b/OpenSim/Data/MySQL/MySQLInventoryData.cs index 0ea0cb7..d560c5f 100644 --- a/OpenSim/Data/MySQL/MySQLInventoryData.cs +++ b/OpenSim/Data/MySQL/MySQLInventoryData.cs @@ -91,6 +91,9 @@ namespace OpenSim.Data.MySQL rollbackStore = GridDataMySqlFile.ParseFileReadValue("rollback") == "true"; opengridmode = GridDataMySqlFile.ParseFileReadValue("opengridmode") == "true"; + if(rollbackStore) + m_log.Warn("[MysqlInventory] Enabling rollback mode in: " + rollbackDir); + database = new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling, settingPort); diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs index 1112497..7215086 100644 --- a/OpenSim/Framework/Util.cs +++ b/OpenSim/Framework/Util.cs @@ -1007,6 +1007,26 @@ namespace OpenSim.Framework return os; } + public static string GetRuntimeInformation() + { + string ru = String.Empty; + + if (Environment.OSVersion.Platform == PlatformID.Unix) + ru = "Unix/Mono"; + else + if (Environment.OSVersion.Platform == PlatformID.MacOSX) + ru = "OSX/Mono"; + else + { + if (Type.GetType("Mono.Runtime") != null) + ru = "Win/Mono"; + else + ru = "Win/.NET"; + } + + return ru; + } + /// /// Is the given string a UUID? /// diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index a22fb5f..cc13972 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -574,10 +574,15 @@ namespace OpenSim.Region.Framework.Scenes StatsReporter.SetObjectCapacity(objectCapacity); + // Old + /* m_simulatorVersion = simulatorVersion + " (OS " + Util.GetOperatingSystemInformation() + ")" + " ChilTasks:" + m_seeIntoRegionFromNeighbor.ToString() + " PhysPrim:" + m_physicalPrim.ToString(); + */ + + m_simulatorVersion = simulatorVersion + " (" + Util.GetRuntimeInformation() + ")"; try { diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index 5501679..e9e54ae 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs @@ -1970,5 +1970,18 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api return ret; } + public int osGetSimulatorMemory() + { + CheckThreatLevel(ThreatLevel.Moderate, "osGetRegionStats"); + m_host.AddScriptLPS(1); + long pws = System.Diagnostics.Process.GetCurrentProcess().WorkingSet64; + + if (pws > Int32.MaxValue) + return Int32.MaxValue; + if (pws < 0) + return 0; + + return (int)pws; + } } } diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs index 0b0dc00..580c354 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs @@ -163,5 +163,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces key osGetMapTexture(); key osGetRegionMapTexture(string regionName); LSL_List osGetRegionStats(); + + int osGetSimulatorMemory(); } } diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs index 519463e..2876ad6 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs @@ -637,5 +637,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase { return m_OSSL_Functions.osGetRegionStats(); } + + /// + /// Returns the amount of memory in use by the Simulator Daemon. + /// Amount in bytes - if >= 4GB, returns 4GB. (LSL is not 64-bit aware) + /// + /// + public LSL_Integer osGetSimulatorMemory() + { + return m_OSSL_Functions.osGetSimulatorMemory(); + } } } -- cgit v1.1 From 87e89efbf9727b294658f149c6494fd49608bc12 Mon Sep 17 00:00:00 2001 From: Adam Frisby Date: Sun, 13 Dec 2009 03:49:22 +1100 Subject: * Mistaken ThreatLevel classification on osGetSimulatorMemory - should have been MODERATE. --- OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim') diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index e9e54ae..1b7db7c 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs @@ -1972,7 +1972,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api public int osGetSimulatorMemory() { - CheckThreatLevel(ThreatLevel.Moderate, "osGetRegionStats"); + CheckThreatLevel(ThreatLevel.Moderate, "osGetSimulatorMemory"); m_host.AddScriptLPS(1); long pws = System.Diagnostics.Process.GetCurrentProcess().WorkingSet64; -- cgit v1.1 From 4ef8dc7d96fa2d4efd992ff7d304b8894f004c4f Mon Sep 17 00:00:00 2001 From: Teravus Ovares (Dan Olivares) Date: Sun, 13 Dec 2009 02:08:28 -0500 Subject: * Add some glue that allows LocalPacketHandlers to decide if they want the packet to be processed asynchronously or not. * Make several packets not asynchronous (such as AgentUpdate). In theory, all fast returning packet handling methods should not be asynchronous. Ones that wait on an external resource or a long held lock, should be asynchronous. --- .../Region/ClientStack/LindenUDP/LLClientView.cs | 136 ++++++++++++++------- .../Region/ClientStack/LindenUDP/LLUDPServer.cs | 2 +- 2 files changed, 90 insertions(+), 48 deletions(-) (limited to 'OpenSim') diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index fba5090..9184c90 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs @@ -332,7 +332,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP private AgentUpdateArgs lastarg; private bool m_IsActive = true; - protected Dictionary m_packetHandlers = new Dictionary(); + protected Dictionary m_packetHandlers = new Dictionary(); protected Dictionary m_genericPacketHandlers = new Dictionary(); //PauPaw:Local Generic Message handlers protected Scene m_scene; protected LLImageManager m_imageManager; @@ -540,12 +540,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP public bool AddLocalPacketHandler(PacketType packetType, PacketMethod handler) { + return AddLocalPacketHandler(packetType, handler, true); + } + + public bool AddLocalPacketHandler(PacketType packetType, PacketMethod handler, bool async) + { bool result = false; lock (m_packetHandlers) { if (!m_packetHandlers.ContainsKey(packetType)) { - m_packetHandlers.Add(packetType, handler); + m_packetHandlers.Add(packetType, new PacketProcessor() { method = handler, Async = async }); result = true; } } @@ -576,15 +581,25 @@ namespace OpenSim.Region.ClientStack.LindenUDP protected virtual bool ProcessPacketMethod(Packet packet) { bool result = false; - PacketMethod method; - if (m_packetHandlers.TryGetValue(packet.Type, out method)) + PacketProcessor pprocessor; + if (m_packetHandlers.TryGetValue(packet.Type, out pprocessor)) { //there is a local handler for this packet type - result = method(this, packet); + if (pprocessor.Async) + { + object obj = new AsyncPacketProcess(this, pprocessor.method, packet); + Util.FireAndForget(ProcessSpecificPacketAsync,obj); + result = true; + } + else + { + result = pprocessor.method(this, packet); + } } else { //there is not a local handler so see if there is a Global handler + PacketMethod method = null; bool found; lock (PacketHandlers) { @@ -598,6 +613,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP return result; } + public void ProcessSpecificPacketAsync(object state) + { + AsyncPacketProcess packetObject = (AsyncPacketProcess)state; + packetObject.result = packetObject.Method(packetObject.ClientView, packetObject.Pack); + + } + #endregion Packet Handling # region Setup @@ -4340,26 +4362,26 @@ namespace OpenSim.Region.ClientStack.LindenUDP protected virtual void RegisterLocalPacketHandlers() { AddLocalPacketHandler(PacketType.LogoutRequest, HandleLogout); - AddLocalPacketHandler(PacketType.AgentUpdate, HandleAgentUpdate); - AddLocalPacketHandler(PacketType.ViewerEffect, HandleViewerEffect); - AddLocalPacketHandler(PacketType.AgentCachedTexture, HandleAgentTextureCached); - AddLocalPacketHandler(PacketType.MultipleObjectUpdate, HandleMultipleObjUpdate); - AddLocalPacketHandler(PacketType.MoneyTransferRequest, HandleMoneyTransferRequest); - AddLocalPacketHandler(PacketType.ParcelBuy, HandleParcelBuyRequest); - AddLocalPacketHandler(PacketType.UUIDGroupNameRequest, HandleUUIDGroupNameRequest); - AddLocalPacketHandler(PacketType.ObjectGroup, HandleObjectGroupRequest); + AddLocalPacketHandler(PacketType.AgentUpdate, HandleAgentUpdate, false); + AddLocalPacketHandler(PacketType.ViewerEffect, HandleViewerEffect, false); + AddLocalPacketHandler(PacketType.AgentCachedTexture, HandleAgentTextureCached, false); + AddLocalPacketHandler(PacketType.MultipleObjectUpdate, HandleMultipleObjUpdate, false); + AddLocalPacketHandler(PacketType.MoneyTransferRequest, HandleMoneyTransferRequest, false); + AddLocalPacketHandler(PacketType.ParcelBuy, HandleParcelBuyRequest, false); + AddLocalPacketHandler(PacketType.UUIDGroupNameRequest, HandleUUIDGroupNameRequest, false); + AddLocalPacketHandler(PacketType.ObjectGroup, HandleObjectGroupRequest, false); AddLocalPacketHandler(PacketType.GenericMessage, HandleGenericMessage); AddLocalPacketHandler(PacketType.AvatarPropertiesRequest, HandleAvatarPropertiesRequest); AddLocalPacketHandler(PacketType.ChatFromViewer, HandleChatFromViewer); AddLocalPacketHandler(PacketType.AvatarPropertiesUpdate, HandlerAvatarPropertiesUpdate); AddLocalPacketHandler(PacketType.ScriptDialogReply, HandlerScriptDialogReply); - AddLocalPacketHandler(PacketType.ImprovedInstantMessage, HandlerImprovedInstantMessage); + AddLocalPacketHandler(PacketType.ImprovedInstantMessage, HandlerImprovedInstantMessage, false); AddLocalPacketHandler(PacketType.AcceptFriendship, HandlerAcceptFriendship); AddLocalPacketHandler(PacketType.DeclineFriendship, HandlerDeclineFriendship); AddLocalPacketHandler(PacketType.TerminateFriendship, HandlerTerminateFrendship); AddLocalPacketHandler(PacketType.RezObject, HandlerRezObject); AddLocalPacketHandler(PacketType.DeRezObject, HandlerDeRezObject); - AddLocalPacketHandler(PacketType.ModifyLand, HandlerModifyLand); + AddLocalPacketHandler(PacketType.ModifyLand, HandlerModifyLand, false); AddLocalPacketHandler(PacketType.RegionHandshakeReply, HandlerRegionHandshakeReply); AddLocalPacketHandler(PacketType.AgentWearablesRequest, HandlerAgentWearablesRequest); AddLocalPacketHandler(PacketType.AgentSetAppearance, HandlerAgentSetAppearance); @@ -4370,9 +4392,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP AddLocalPacketHandler(PacketType.ObjectAttach, HandleObjectAttach); AddLocalPacketHandler(PacketType.ObjectDetach, HandleObjectDetach); AddLocalPacketHandler(PacketType.ObjectDrop, HandleObjectDrop); - AddLocalPacketHandler(PacketType.SetAlwaysRun, HandleSetAlwaysRun); + AddLocalPacketHandler(PacketType.SetAlwaysRun, HandleSetAlwaysRun, false); AddLocalPacketHandler(PacketType.CompleteAgentMovement, HandleCompleteAgentMovement); - AddLocalPacketHandler(PacketType.AgentAnimation, HandleAgentAnimation); + AddLocalPacketHandler(PacketType.AgentAnimation, HandleAgentAnimation, false); AddLocalPacketHandler(PacketType.AgentRequestSit, HandleAgentRequestSit); AddLocalPacketHandler(PacketType.AgentSit, HandleAgentSit); AddLocalPacketHandler(PacketType.SoundTrigger, HandleSoundTrigger); @@ -4381,9 +4403,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP AddLocalPacketHandler(PacketType.UserInfoRequest, HandleUserInfoRequest); AddLocalPacketHandler(PacketType.UpdateUserInfo, HandleUpdateUserInfo); AddLocalPacketHandler(PacketType.SetStartLocationRequest, HandleSetStartLocationRequest); - AddLocalPacketHandler(PacketType.AgentThrottle, HandleAgentThrottle); - AddLocalPacketHandler(PacketType.AgentPause, HandleAgentPause); - AddLocalPacketHandler(PacketType.AgentResume, HandleAgentResume); + AddLocalPacketHandler(PacketType.AgentThrottle, HandleAgentThrottle, false); + AddLocalPacketHandler(PacketType.AgentPause, HandleAgentPause, false); + AddLocalPacketHandler(PacketType.AgentResume, HandleAgentResume, false); AddLocalPacketHandler(PacketType.ForceScriptControlRelease, HandleForceScriptControlRelease); AddLocalPacketHandler(PacketType.ObjectLink, HandleObjectLink); AddLocalPacketHandler(PacketType.ObjectDelink, HandleObjectDelink); @@ -4399,22 +4421,22 @@ namespace OpenSim.Region.ClientStack.LindenUDP AddLocalPacketHandler(PacketType.ObjectRotation, HandleObjectRotation); AddLocalPacketHandler(PacketType.ObjectFlagUpdate, HandleObjectFlagUpdate); AddLocalPacketHandler(PacketType.ObjectImage, HandleObjectImage); - AddLocalPacketHandler(PacketType.ObjectGrab, HandleObjectGrab); - AddLocalPacketHandler(PacketType.ObjectGrabUpdate, HandleObjectGrabUpdate); + AddLocalPacketHandler(PacketType.ObjectGrab, HandleObjectGrab, false); + AddLocalPacketHandler(PacketType.ObjectGrabUpdate, HandleObjectGrabUpdate, false); AddLocalPacketHandler(PacketType.ObjectDeGrab, HandleObjectDeGrab); - AddLocalPacketHandler(PacketType.ObjectSpinStart, HandleObjectSpinStart); - AddLocalPacketHandler(PacketType.ObjectSpinUpdate, HandleObjectSpinUpdate); - AddLocalPacketHandler(PacketType.ObjectSpinStop, HandleObjectSpinStop); - AddLocalPacketHandler(PacketType.ObjectDescription, HandleObjectDescription); - AddLocalPacketHandler(PacketType.ObjectName, HandleObjectName); - AddLocalPacketHandler(PacketType.ObjectPermissions, HandleObjectPermissions); - AddLocalPacketHandler(PacketType.Undo, HandleUndo); + AddLocalPacketHandler(PacketType.ObjectSpinStart, HandleObjectSpinStart, false); + AddLocalPacketHandler(PacketType.ObjectSpinUpdate, HandleObjectSpinUpdate, false); + AddLocalPacketHandler(PacketType.ObjectSpinStop, HandleObjectSpinStop, false); + AddLocalPacketHandler(PacketType.ObjectDescription, HandleObjectDescription, false); + AddLocalPacketHandler(PacketType.ObjectName, HandleObjectName, false); + AddLocalPacketHandler(PacketType.ObjectPermissions, HandleObjectPermissions, false); + AddLocalPacketHandler(PacketType.Undo, HandleUndo, false); AddLocalPacketHandler(PacketType.ObjectDuplicateOnRay, HandleObjectDuplicateOnRay); - AddLocalPacketHandler(PacketType.RequestObjectPropertiesFamily, HandleRequestObjectPropertiesFamily); + AddLocalPacketHandler(PacketType.RequestObjectPropertiesFamily, HandleRequestObjectPropertiesFamily, false); AddLocalPacketHandler(PacketType.ObjectIncludeInSearch, HandleObjectIncludeInSearch); - AddLocalPacketHandler(PacketType.ScriptAnswerYes, HandleScriptAnswerYes); - AddLocalPacketHandler(PacketType.ObjectClickAction, HandleObjectClickAction); - AddLocalPacketHandler(PacketType.ObjectMaterial, HandleObjectMaterial); + AddLocalPacketHandler(PacketType.ScriptAnswerYes, HandleScriptAnswerYes, false); + AddLocalPacketHandler(PacketType.ObjectClickAction, HandleObjectClickAction, false); + AddLocalPacketHandler(PacketType.ObjectMaterial, HandleObjectMaterial, false); AddLocalPacketHandler(PacketType.RequestImage, HandleRequestImage); AddLocalPacketHandler(PacketType.TransferRequest, HandleTransferRequest); AddLocalPacketHandler(PacketType.AssetUploadRequest, HandleAssetUploadRequest); @@ -4440,17 +4462,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP AddLocalPacketHandler(PacketType.RemoveTaskInventory, HandleRemoveTaskInventory); AddLocalPacketHandler(PacketType.MoveTaskInventory, HandleMoveTaskInventory); AddLocalPacketHandler(PacketType.RezScript, HandleRezScript); - AddLocalPacketHandler(PacketType.MapLayerRequest, HandleMapLayerRequest); - AddLocalPacketHandler(PacketType.MapBlockRequest, HandleMapBlockRequest); - AddLocalPacketHandler(PacketType.MapNameRequest, HandleMapNameRequest); + AddLocalPacketHandler(PacketType.MapLayerRequest, HandleMapLayerRequest, false); + AddLocalPacketHandler(PacketType.MapBlockRequest, HandleMapBlockRequest, false); + AddLocalPacketHandler(PacketType.MapNameRequest, HandleMapNameRequest, false); AddLocalPacketHandler(PacketType.TeleportLandmarkRequest, HandleTeleportLandmarkRequest); AddLocalPacketHandler(PacketType.TeleportLocationRequest, HandleTeleportLocationRequest); - AddLocalPacketHandler(PacketType.UUIDNameRequest, HandleUUIDNameRequest); + AddLocalPacketHandler(PacketType.UUIDNameRequest, HandleUUIDNameRequest, false); AddLocalPacketHandler(PacketType.RegionHandleRequest, HandleRegionHandleRequest); - AddLocalPacketHandler(PacketType.ParcelInfoRequest, HandleParcelInfoRequest); - AddLocalPacketHandler(PacketType.ParcelAccessListRequest, HandleParcelAccessListRequest); - AddLocalPacketHandler(PacketType.ParcelAccessListUpdate, HandleParcelAccessListUpdate); - AddLocalPacketHandler(PacketType.ParcelPropertiesRequest, HandleParcelPropertiesRequest); + AddLocalPacketHandler(PacketType.ParcelInfoRequest, HandleParcelInfoRequest, false); + AddLocalPacketHandler(PacketType.ParcelAccessListRequest, HandleParcelAccessListRequest, false); + AddLocalPacketHandler(PacketType.ParcelAccessListUpdate, HandleParcelAccessListUpdate, false); + AddLocalPacketHandler(PacketType.ParcelPropertiesRequest, HandleParcelPropertiesRequest, false); AddLocalPacketHandler(PacketType.ParcelDivide, HandleParcelDivide); AddLocalPacketHandler(PacketType.ParcelJoin, HandleParcelJoin); AddLocalPacketHandler(PacketType.ParcelPropertiesUpdate, HandleParcelPropertiesUpdate); @@ -4464,7 +4486,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP AddLocalPacketHandler(PacketType.LandStatRequest, HandleLandStatRequest); AddLocalPacketHandler(PacketType.ParcelDwellRequest, HandleParcelDwellRequest); AddLocalPacketHandler(PacketType.EstateOwnerMessage, HandleEstateOwnerMessage); - AddLocalPacketHandler(PacketType.RequestRegionInfo, HandleRequestRegionInfo); + AddLocalPacketHandler(PacketType.RequestRegionInfo, HandleRequestRegionInfo, false); AddLocalPacketHandler(PacketType.EstateCovenantRequest, HandleEstateCovenantRequest); AddLocalPacketHandler(PacketType.RequestGodlikePowers, HandleRequestGodlikePowers); AddLocalPacketHandler(PacketType.GodKickUser, HandleGodKickUser); @@ -4479,13 +4501,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP AddLocalPacketHandler(PacketType.ActivateGestures, HandleActivateGestures); AddLocalPacketHandler(PacketType.DeactivateGestures, HandleDeactivateGestures); AddLocalPacketHandler(PacketType.ObjectOwner, HandleObjectOwner); - AddLocalPacketHandler(PacketType.AgentFOV, HandleAgentFOV); + AddLocalPacketHandler(PacketType.AgentFOV, HandleAgentFOV, false); AddLocalPacketHandler(PacketType.ViewerStats, HandleViewerStats); - AddLocalPacketHandler(PacketType.MapItemRequest, HandleMapItemRequest); - AddLocalPacketHandler(PacketType.TransferAbort, HandleTransferAbort); - AddLocalPacketHandler(PacketType.MuteListRequest, HandleMuteListRequest); + AddLocalPacketHandler(PacketType.MapItemRequest, HandleMapItemRequest, false); + AddLocalPacketHandler(PacketType.TransferAbort, HandleTransferAbort, false); + AddLocalPacketHandler(PacketType.MuteListRequest, HandleMuteListRequest, false); AddLocalPacketHandler(PacketType.UseCircuitCode, HandleUseCircuitCode); - AddLocalPacketHandler(PacketType.AgentHeightWidth, HandleAgentHeightWidth); + AddLocalPacketHandler(PacketType.AgentHeightWidth, HandleAgentHeightWidth, false); AddLocalPacketHandler(PacketType.InventoryDescendents, HandleInventoryDescendents); AddLocalPacketHandler(PacketType.DirPlacesQuery, HandleDirPlacesQuery); AddLocalPacketHandler(PacketType.DirFindQuery, HandleDirFindQuery); @@ -15757,6 +15779,26 @@ namespace OpenSim.Region.ClientStack.LindenUDP } #endregion } + + public struct PacketProcessor + { + public PacketMethod method; + public bool Async; + } + public class AsyncPacketProcess + { + public bool result = false; + public readonly LLClientView ClientView = null; + public readonly Packet Pack = null; + public readonly PacketMethod Method = null; + public AsyncPacketProcess(LLClientView pClientview, PacketMethod pMethod, Packet pPack) + { + ClientView = pClientview; + Method = pMethod; + Pack = pPack; + } + } + #endregion public static OSD BuildEvent(string eventName, OSD eventBody) diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs index 338f2bb..3c4fa72 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs @@ -943,7 +943,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP } if (packetInbox.Dequeue(100, ref incomingPacket)) - Util.FireAndForget(ProcessInPacket, incomingPacket); + ProcessInPacket(incomingPacket);//, incomingPacket); Util.FireAndForget(ProcessInPacket, incomingPacket); } catch (Exception ex) { -- cgit v1.1 From f04645724956061bc1349ded24f984c6d12dd958 Mon Sep 17 00:00:00 2001 From: Teravus Ovares (Dan Olivares) Date: Sun, 13 Dec 2009 04:02:18 -0500 Subject: Tweaking the ModifyLand packet to be async. Advice from Adam --- OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim') diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 9184c90..4780701 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs @@ -4381,7 +4381,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP AddLocalPacketHandler(PacketType.TerminateFriendship, HandlerTerminateFrendship); AddLocalPacketHandler(PacketType.RezObject, HandlerRezObject); AddLocalPacketHandler(PacketType.DeRezObject, HandlerDeRezObject); - AddLocalPacketHandler(PacketType.ModifyLand, HandlerModifyLand, false); + AddLocalPacketHandler(PacketType.ModifyLand, HandlerModifyLand); AddLocalPacketHandler(PacketType.RegionHandshakeReply, HandlerRegionHandshakeReply); AddLocalPacketHandler(PacketType.AgentWearablesRequest, HandlerAgentWearablesRequest); AddLocalPacketHandler(PacketType.AgentSetAppearance, HandlerAgentSetAppearance); -- cgit v1.1