diff options
author | Melanie | 2009-12-14 00:32:00 +0000 |
---|---|---|
committer | Melanie | 2009-12-14 00:32:00 +0000 |
commit | 0813dc8c1d8ff6a2de04dc48e991e803eb3df260 (patch) | |
tree | 3aa288c205e41277ef927eac8605dc70845d8065 /OpenSim/Region | |
parent | Add an option to exit an instance rather than restarting a region within it (diff) | |
parent | Tweaking the ModifyLand packet to be async. Advice from Adam (diff) | |
download | opensim-SC-0813dc8c1d8ff6a2de04dc48e991e803eb3df260.zip opensim-SC-0813dc8c1d8ff6a2de04dc48e991e803eb3df260.tar.gz opensim-SC-0813dc8c1d8ff6a2de04dc48e991e803eb3df260.tar.bz2 opensim-SC-0813dc8c1d8ff6a2de04dc48e991e803eb3df260.tar.xz |
Merge branch 'master' of melanie@opensimulator.org:/var/git/opensim
Diffstat (limited to 'OpenSim/Region')
6 files changed, 119 insertions, 47 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index fba5090..4780701 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -332,7 +332,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
332 | private AgentUpdateArgs lastarg; | 332 | private AgentUpdateArgs lastarg; |
333 | private bool m_IsActive = true; | 333 | private bool m_IsActive = true; |
334 | 334 | ||
335 | protected Dictionary<PacketType, PacketMethod> m_packetHandlers = new Dictionary<PacketType, PacketMethod>(); | 335 | protected Dictionary<PacketType, PacketProcessor> m_packetHandlers = new Dictionary<PacketType, PacketProcessor>(); |
336 | protected Dictionary<string, GenericMessage> m_genericPacketHandlers = new Dictionary<string, GenericMessage>(); //PauPaw:Local Generic Message handlers | 336 | protected Dictionary<string, GenericMessage> m_genericPacketHandlers = new Dictionary<string, GenericMessage>(); //PauPaw:Local Generic Message handlers |
337 | protected Scene m_scene; | 337 | protected Scene m_scene; |
338 | protected LLImageManager m_imageManager; | 338 | protected LLImageManager m_imageManager; |
@@ -540,12 +540,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
540 | 540 | ||
541 | public bool AddLocalPacketHandler(PacketType packetType, PacketMethod handler) | 541 | public bool AddLocalPacketHandler(PacketType packetType, PacketMethod handler) |
542 | { | 542 | { |
543 | return AddLocalPacketHandler(packetType, handler, true); | ||
544 | } | ||
545 | |||
546 | public bool AddLocalPacketHandler(PacketType packetType, PacketMethod handler, bool async) | ||
547 | { | ||
543 | bool result = false; | 548 | bool result = false; |
544 | lock (m_packetHandlers) | 549 | lock (m_packetHandlers) |
545 | { | 550 | { |
546 | if (!m_packetHandlers.ContainsKey(packetType)) | 551 | if (!m_packetHandlers.ContainsKey(packetType)) |
547 | { | 552 | { |
548 | m_packetHandlers.Add(packetType, handler); | 553 | m_packetHandlers.Add(packetType, new PacketProcessor() { method = handler, Async = async }); |
549 | result = true; | 554 | result = true; |
550 | } | 555 | } |
551 | } | 556 | } |
@@ -576,15 +581,25 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
576 | protected virtual bool ProcessPacketMethod(Packet packet) | 581 | protected virtual bool ProcessPacketMethod(Packet packet) |
577 | { | 582 | { |
578 | bool result = false; | 583 | bool result = false; |
579 | PacketMethod method; | 584 | PacketProcessor pprocessor; |
580 | if (m_packetHandlers.TryGetValue(packet.Type, out method)) | 585 | if (m_packetHandlers.TryGetValue(packet.Type, out pprocessor)) |
581 | { | 586 | { |
582 | //there is a local handler for this packet type | 587 | //there is a local handler for this packet type |
583 | result = method(this, packet); | 588 | if (pprocessor.Async) |
589 | { | ||
590 | object obj = new AsyncPacketProcess(this, pprocessor.method, packet); | ||
591 | Util.FireAndForget(ProcessSpecificPacketAsync,obj); | ||
592 | result = true; | ||
593 | } | ||
594 | else | ||
595 | { | ||
596 | result = pprocessor.method(this, packet); | ||
597 | } | ||
584 | } | 598 | } |
585 | else | 599 | else |
586 | { | 600 | { |
587 | //there is not a local handler so see if there is a Global handler | 601 | //there is not a local handler so see if there is a Global handler |
602 | PacketMethod method = null; | ||
588 | bool found; | 603 | bool found; |
589 | lock (PacketHandlers) | 604 | lock (PacketHandlers) |
590 | { | 605 | { |
@@ -598,6 +613,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
598 | return result; | 613 | return result; |
599 | } | 614 | } |
600 | 615 | ||
616 | public void ProcessSpecificPacketAsync(object state) | ||
617 | { | ||
618 | AsyncPacketProcess packetObject = (AsyncPacketProcess)state; | ||
619 | packetObject.result = packetObject.Method(packetObject.ClientView, packetObject.Pack); | ||
620 | |||
621 | } | ||
622 | |||
601 | #endregion Packet Handling | 623 | #endregion Packet Handling |
602 | 624 | ||
603 | # region Setup | 625 | # region Setup |
@@ -4340,20 +4362,20 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4340 | protected virtual void RegisterLocalPacketHandlers() | 4362 | protected virtual void RegisterLocalPacketHandlers() |
4341 | { | 4363 | { |
4342 | AddLocalPacketHandler(PacketType.LogoutRequest, HandleLogout); | 4364 | AddLocalPacketHandler(PacketType.LogoutRequest, HandleLogout); |
4343 | AddLocalPacketHandler(PacketType.AgentUpdate, HandleAgentUpdate); | 4365 | AddLocalPacketHandler(PacketType.AgentUpdate, HandleAgentUpdate, false); |
4344 | AddLocalPacketHandler(PacketType.ViewerEffect, HandleViewerEffect); | 4366 | AddLocalPacketHandler(PacketType.ViewerEffect, HandleViewerEffect, false); |
4345 | AddLocalPacketHandler(PacketType.AgentCachedTexture, HandleAgentTextureCached); | 4367 | AddLocalPacketHandler(PacketType.AgentCachedTexture, HandleAgentTextureCached, false); |
4346 | AddLocalPacketHandler(PacketType.MultipleObjectUpdate, HandleMultipleObjUpdate); | 4368 | AddLocalPacketHandler(PacketType.MultipleObjectUpdate, HandleMultipleObjUpdate, false); |
4347 | AddLocalPacketHandler(PacketType.MoneyTransferRequest, HandleMoneyTransferRequest); | 4369 | AddLocalPacketHandler(PacketType.MoneyTransferRequest, HandleMoneyTransferRequest, false); |
4348 | AddLocalPacketHandler(PacketType.ParcelBuy, HandleParcelBuyRequest); | 4370 | AddLocalPacketHandler(PacketType.ParcelBuy, HandleParcelBuyRequest, false); |
4349 | AddLocalPacketHandler(PacketType.UUIDGroupNameRequest, HandleUUIDGroupNameRequest); | 4371 | AddLocalPacketHandler(PacketType.UUIDGroupNameRequest, HandleUUIDGroupNameRequest, false); |
4350 | AddLocalPacketHandler(PacketType.ObjectGroup, HandleObjectGroupRequest); | 4372 | AddLocalPacketHandler(PacketType.ObjectGroup, HandleObjectGroupRequest, false); |
4351 | AddLocalPacketHandler(PacketType.GenericMessage, HandleGenericMessage); | 4373 | AddLocalPacketHandler(PacketType.GenericMessage, HandleGenericMessage); |
4352 | AddLocalPacketHandler(PacketType.AvatarPropertiesRequest, HandleAvatarPropertiesRequest); | 4374 | AddLocalPacketHandler(PacketType.AvatarPropertiesRequest, HandleAvatarPropertiesRequest); |
4353 | AddLocalPacketHandler(PacketType.ChatFromViewer, HandleChatFromViewer); | 4375 | AddLocalPacketHandler(PacketType.ChatFromViewer, HandleChatFromViewer); |
4354 | AddLocalPacketHandler(PacketType.AvatarPropertiesUpdate, HandlerAvatarPropertiesUpdate); | 4376 | AddLocalPacketHandler(PacketType.AvatarPropertiesUpdate, HandlerAvatarPropertiesUpdate); |
4355 | AddLocalPacketHandler(PacketType.ScriptDialogReply, HandlerScriptDialogReply); | 4377 | AddLocalPacketHandler(PacketType.ScriptDialogReply, HandlerScriptDialogReply); |
4356 | AddLocalPacketHandler(PacketType.ImprovedInstantMessage, HandlerImprovedInstantMessage); | 4378 | AddLocalPacketHandler(PacketType.ImprovedInstantMessage, HandlerImprovedInstantMessage, false); |
4357 | AddLocalPacketHandler(PacketType.AcceptFriendship, HandlerAcceptFriendship); | 4379 | AddLocalPacketHandler(PacketType.AcceptFriendship, HandlerAcceptFriendship); |
4358 | AddLocalPacketHandler(PacketType.DeclineFriendship, HandlerDeclineFriendship); | 4380 | AddLocalPacketHandler(PacketType.DeclineFriendship, HandlerDeclineFriendship); |
4359 | AddLocalPacketHandler(PacketType.TerminateFriendship, HandlerTerminateFrendship); | 4381 | AddLocalPacketHandler(PacketType.TerminateFriendship, HandlerTerminateFrendship); |
@@ -4370,9 +4392,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4370 | AddLocalPacketHandler(PacketType.ObjectAttach, HandleObjectAttach); | 4392 | AddLocalPacketHandler(PacketType.ObjectAttach, HandleObjectAttach); |
4371 | AddLocalPacketHandler(PacketType.ObjectDetach, HandleObjectDetach); | 4393 | AddLocalPacketHandler(PacketType.ObjectDetach, HandleObjectDetach); |
4372 | AddLocalPacketHandler(PacketType.ObjectDrop, HandleObjectDrop); | 4394 | AddLocalPacketHandler(PacketType.ObjectDrop, HandleObjectDrop); |
4373 | AddLocalPacketHandler(PacketType.SetAlwaysRun, HandleSetAlwaysRun); | 4395 | AddLocalPacketHandler(PacketType.SetAlwaysRun, HandleSetAlwaysRun, false); |
4374 | AddLocalPacketHandler(PacketType.CompleteAgentMovement, HandleCompleteAgentMovement); | 4396 | AddLocalPacketHandler(PacketType.CompleteAgentMovement, HandleCompleteAgentMovement); |
4375 | AddLocalPacketHandler(PacketType.AgentAnimation, HandleAgentAnimation); | 4397 | AddLocalPacketHandler(PacketType.AgentAnimation, HandleAgentAnimation, false); |
4376 | AddLocalPacketHandler(PacketType.AgentRequestSit, HandleAgentRequestSit); | 4398 | AddLocalPacketHandler(PacketType.AgentRequestSit, HandleAgentRequestSit); |
4377 | AddLocalPacketHandler(PacketType.AgentSit, HandleAgentSit); | 4399 | AddLocalPacketHandler(PacketType.AgentSit, HandleAgentSit); |
4378 | AddLocalPacketHandler(PacketType.SoundTrigger, HandleSoundTrigger); | 4400 | AddLocalPacketHandler(PacketType.SoundTrigger, HandleSoundTrigger); |
@@ -4381,9 +4403,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4381 | AddLocalPacketHandler(PacketType.UserInfoRequest, HandleUserInfoRequest); | 4403 | AddLocalPacketHandler(PacketType.UserInfoRequest, HandleUserInfoRequest); |
4382 | AddLocalPacketHandler(PacketType.UpdateUserInfo, HandleUpdateUserInfo); | 4404 | AddLocalPacketHandler(PacketType.UpdateUserInfo, HandleUpdateUserInfo); |
4383 | AddLocalPacketHandler(PacketType.SetStartLocationRequest, HandleSetStartLocationRequest); | 4405 | AddLocalPacketHandler(PacketType.SetStartLocationRequest, HandleSetStartLocationRequest); |
4384 | AddLocalPacketHandler(PacketType.AgentThrottle, HandleAgentThrottle); | 4406 | AddLocalPacketHandler(PacketType.AgentThrottle, HandleAgentThrottle, false); |
4385 | AddLocalPacketHandler(PacketType.AgentPause, HandleAgentPause); | 4407 | AddLocalPacketHandler(PacketType.AgentPause, HandleAgentPause, false); |
4386 | AddLocalPacketHandler(PacketType.AgentResume, HandleAgentResume); | 4408 | AddLocalPacketHandler(PacketType.AgentResume, HandleAgentResume, false); |
4387 | AddLocalPacketHandler(PacketType.ForceScriptControlRelease, HandleForceScriptControlRelease); | 4409 | AddLocalPacketHandler(PacketType.ForceScriptControlRelease, HandleForceScriptControlRelease); |
4388 | AddLocalPacketHandler(PacketType.ObjectLink, HandleObjectLink); | 4410 | AddLocalPacketHandler(PacketType.ObjectLink, HandleObjectLink); |
4389 | AddLocalPacketHandler(PacketType.ObjectDelink, HandleObjectDelink); | 4411 | AddLocalPacketHandler(PacketType.ObjectDelink, HandleObjectDelink); |
@@ -4399,22 +4421,22 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4399 | AddLocalPacketHandler(PacketType.ObjectRotation, HandleObjectRotation); | 4421 | AddLocalPacketHandler(PacketType.ObjectRotation, HandleObjectRotation); |
4400 | AddLocalPacketHandler(PacketType.ObjectFlagUpdate, HandleObjectFlagUpdate); | 4422 | AddLocalPacketHandler(PacketType.ObjectFlagUpdate, HandleObjectFlagUpdate); |
4401 | AddLocalPacketHandler(PacketType.ObjectImage, HandleObjectImage); | 4423 | AddLocalPacketHandler(PacketType.ObjectImage, HandleObjectImage); |
4402 | AddLocalPacketHandler(PacketType.ObjectGrab, HandleObjectGrab); | 4424 | AddLocalPacketHandler(PacketType.ObjectGrab, HandleObjectGrab, false); |
4403 | AddLocalPacketHandler(PacketType.ObjectGrabUpdate, HandleObjectGrabUpdate); | 4425 | AddLocalPacketHandler(PacketType.ObjectGrabUpdate, HandleObjectGrabUpdate, false); |
4404 | AddLocalPacketHandler(PacketType.ObjectDeGrab, HandleObjectDeGrab); | 4426 | AddLocalPacketHandler(PacketType.ObjectDeGrab, HandleObjectDeGrab); |
4405 | AddLocalPacketHandler(PacketType.ObjectSpinStart, HandleObjectSpinStart); | 4427 | AddLocalPacketHandler(PacketType.ObjectSpinStart, HandleObjectSpinStart, false); |
4406 | AddLocalPacketHandler(PacketType.ObjectSpinUpdate, HandleObjectSpinUpdate); | 4428 | AddLocalPacketHandler(PacketType.ObjectSpinUpdate, HandleObjectSpinUpdate, false); |
4407 | AddLocalPacketHandler(PacketType.ObjectSpinStop, HandleObjectSpinStop); | 4429 | AddLocalPacketHandler(PacketType.ObjectSpinStop, HandleObjectSpinStop, false); |
4408 | AddLocalPacketHandler(PacketType.ObjectDescription, HandleObjectDescription); | 4430 | AddLocalPacketHandler(PacketType.ObjectDescription, HandleObjectDescription, false); |
4409 | AddLocalPacketHandler(PacketType.ObjectName, HandleObjectName); | 4431 | AddLocalPacketHandler(PacketType.ObjectName, HandleObjectName, false); |
4410 | AddLocalPacketHandler(PacketType.ObjectPermissions, HandleObjectPermissions); | 4432 | AddLocalPacketHandler(PacketType.ObjectPermissions, HandleObjectPermissions, false); |
4411 | AddLocalPacketHandler(PacketType.Undo, HandleUndo); | 4433 | AddLocalPacketHandler(PacketType.Undo, HandleUndo, false); |
4412 | AddLocalPacketHandler(PacketType.ObjectDuplicateOnRay, HandleObjectDuplicateOnRay); | 4434 | AddLocalPacketHandler(PacketType.ObjectDuplicateOnRay, HandleObjectDuplicateOnRay); |
4413 | AddLocalPacketHandler(PacketType.RequestObjectPropertiesFamily, HandleRequestObjectPropertiesFamily); | 4435 | AddLocalPacketHandler(PacketType.RequestObjectPropertiesFamily, HandleRequestObjectPropertiesFamily, false); |
4414 | AddLocalPacketHandler(PacketType.ObjectIncludeInSearch, HandleObjectIncludeInSearch); | 4436 | AddLocalPacketHandler(PacketType.ObjectIncludeInSearch, HandleObjectIncludeInSearch); |
4415 | AddLocalPacketHandler(PacketType.ScriptAnswerYes, HandleScriptAnswerYes); | 4437 | AddLocalPacketHandler(PacketType.ScriptAnswerYes, HandleScriptAnswerYes, false); |
4416 | AddLocalPacketHandler(PacketType.ObjectClickAction, HandleObjectClickAction); | 4438 | AddLocalPacketHandler(PacketType.ObjectClickAction, HandleObjectClickAction, false); |
4417 | AddLocalPacketHandler(PacketType.ObjectMaterial, HandleObjectMaterial); | 4439 | AddLocalPacketHandler(PacketType.ObjectMaterial, HandleObjectMaterial, false); |
4418 | AddLocalPacketHandler(PacketType.RequestImage, HandleRequestImage); | 4440 | AddLocalPacketHandler(PacketType.RequestImage, HandleRequestImage); |
4419 | AddLocalPacketHandler(PacketType.TransferRequest, HandleTransferRequest); | 4441 | AddLocalPacketHandler(PacketType.TransferRequest, HandleTransferRequest); |
4420 | AddLocalPacketHandler(PacketType.AssetUploadRequest, HandleAssetUploadRequest); | 4442 | AddLocalPacketHandler(PacketType.AssetUploadRequest, HandleAssetUploadRequest); |
@@ -4440,17 +4462,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4440 | AddLocalPacketHandler(PacketType.RemoveTaskInventory, HandleRemoveTaskInventory); | 4462 | AddLocalPacketHandler(PacketType.RemoveTaskInventory, HandleRemoveTaskInventory); |
4441 | AddLocalPacketHandler(PacketType.MoveTaskInventory, HandleMoveTaskInventory); | 4463 | AddLocalPacketHandler(PacketType.MoveTaskInventory, HandleMoveTaskInventory); |
4442 | AddLocalPacketHandler(PacketType.RezScript, HandleRezScript); | 4464 | AddLocalPacketHandler(PacketType.RezScript, HandleRezScript); |
4443 | AddLocalPacketHandler(PacketType.MapLayerRequest, HandleMapLayerRequest); | 4465 | AddLocalPacketHandler(PacketType.MapLayerRequest, HandleMapLayerRequest, false); |
4444 | AddLocalPacketHandler(PacketType.MapBlockRequest, HandleMapBlockRequest); | 4466 | AddLocalPacketHandler(PacketType.MapBlockRequest, HandleMapBlockRequest, false); |
4445 | AddLocalPacketHandler(PacketType.MapNameRequest, HandleMapNameRequest); | 4467 | AddLocalPacketHandler(PacketType.MapNameRequest, HandleMapNameRequest, false); |
4446 | AddLocalPacketHandler(PacketType.TeleportLandmarkRequest, HandleTeleportLandmarkRequest); | 4468 | AddLocalPacketHandler(PacketType.TeleportLandmarkRequest, HandleTeleportLandmarkRequest); |
4447 | AddLocalPacketHandler(PacketType.TeleportLocationRequest, HandleTeleportLocationRequest); | 4469 | AddLocalPacketHandler(PacketType.TeleportLocationRequest, HandleTeleportLocationRequest); |
4448 | AddLocalPacketHandler(PacketType.UUIDNameRequest, HandleUUIDNameRequest); | 4470 | AddLocalPacketHandler(PacketType.UUIDNameRequest, HandleUUIDNameRequest, false); |
4449 | AddLocalPacketHandler(PacketType.RegionHandleRequest, HandleRegionHandleRequest); | 4471 | AddLocalPacketHandler(PacketType.RegionHandleRequest, HandleRegionHandleRequest); |
4450 | AddLocalPacketHandler(PacketType.ParcelInfoRequest, HandleParcelInfoRequest); | 4472 | AddLocalPacketHandler(PacketType.ParcelInfoRequest, HandleParcelInfoRequest, false); |
4451 | AddLocalPacketHandler(PacketType.ParcelAccessListRequest, HandleParcelAccessListRequest); | 4473 | AddLocalPacketHandler(PacketType.ParcelAccessListRequest, HandleParcelAccessListRequest, false); |
4452 | AddLocalPacketHandler(PacketType.ParcelAccessListUpdate, HandleParcelAccessListUpdate); | 4474 | AddLocalPacketHandler(PacketType.ParcelAccessListUpdate, HandleParcelAccessListUpdate, false); |
4453 | AddLocalPacketHandler(PacketType.ParcelPropertiesRequest, HandleParcelPropertiesRequest); | 4475 | AddLocalPacketHandler(PacketType.ParcelPropertiesRequest, HandleParcelPropertiesRequest, false); |
4454 | AddLocalPacketHandler(PacketType.ParcelDivide, HandleParcelDivide); | 4476 | AddLocalPacketHandler(PacketType.ParcelDivide, HandleParcelDivide); |
4455 | AddLocalPacketHandler(PacketType.ParcelJoin, HandleParcelJoin); | 4477 | AddLocalPacketHandler(PacketType.ParcelJoin, HandleParcelJoin); |
4456 | AddLocalPacketHandler(PacketType.ParcelPropertiesUpdate, HandleParcelPropertiesUpdate); | 4478 | AddLocalPacketHandler(PacketType.ParcelPropertiesUpdate, HandleParcelPropertiesUpdate); |
@@ -4464,7 +4486,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4464 | AddLocalPacketHandler(PacketType.LandStatRequest, HandleLandStatRequest); | 4486 | AddLocalPacketHandler(PacketType.LandStatRequest, HandleLandStatRequest); |
4465 | AddLocalPacketHandler(PacketType.ParcelDwellRequest, HandleParcelDwellRequest); | 4487 | AddLocalPacketHandler(PacketType.ParcelDwellRequest, HandleParcelDwellRequest); |
4466 | AddLocalPacketHandler(PacketType.EstateOwnerMessage, HandleEstateOwnerMessage); | 4488 | AddLocalPacketHandler(PacketType.EstateOwnerMessage, HandleEstateOwnerMessage); |
4467 | AddLocalPacketHandler(PacketType.RequestRegionInfo, HandleRequestRegionInfo); | 4489 | AddLocalPacketHandler(PacketType.RequestRegionInfo, HandleRequestRegionInfo, false); |
4468 | AddLocalPacketHandler(PacketType.EstateCovenantRequest, HandleEstateCovenantRequest); | 4490 | AddLocalPacketHandler(PacketType.EstateCovenantRequest, HandleEstateCovenantRequest); |
4469 | AddLocalPacketHandler(PacketType.RequestGodlikePowers, HandleRequestGodlikePowers); | 4491 | AddLocalPacketHandler(PacketType.RequestGodlikePowers, HandleRequestGodlikePowers); |
4470 | AddLocalPacketHandler(PacketType.GodKickUser, HandleGodKickUser); | 4492 | AddLocalPacketHandler(PacketType.GodKickUser, HandleGodKickUser); |
@@ -4479,13 +4501,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4479 | AddLocalPacketHandler(PacketType.ActivateGestures, HandleActivateGestures); | 4501 | AddLocalPacketHandler(PacketType.ActivateGestures, HandleActivateGestures); |
4480 | AddLocalPacketHandler(PacketType.DeactivateGestures, HandleDeactivateGestures); | 4502 | AddLocalPacketHandler(PacketType.DeactivateGestures, HandleDeactivateGestures); |
4481 | AddLocalPacketHandler(PacketType.ObjectOwner, HandleObjectOwner); | 4503 | AddLocalPacketHandler(PacketType.ObjectOwner, HandleObjectOwner); |
4482 | AddLocalPacketHandler(PacketType.AgentFOV, HandleAgentFOV); | 4504 | AddLocalPacketHandler(PacketType.AgentFOV, HandleAgentFOV, false); |
4483 | AddLocalPacketHandler(PacketType.ViewerStats, HandleViewerStats); | 4505 | AddLocalPacketHandler(PacketType.ViewerStats, HandleViewerStats); |
4484 | AddLocalPacketHandler(PacketType.MapItemRequest, HandleMapItemRequest); | 4506 | AddLocalPacketHandler(PacketType.MapItemRequest, HandleMapItemRequest, false); |
4485 | AddLocalPacketHandler(PacketType.TransferAbort, HandleTransferAbort); | 4507 | AddLocalPacketHandler(PacketType.TransferAbort, HandleTransferAbort, false); |
4486 | AddLocalPacketHandler(PacketType.MuteListRequest, HandleMuteListRequest); | 4508 | AddLocalPacketHandler(PacketType.MuteListRequest, HandleMuteListRequest, false); |
4487 | AddLocalPacketHandler(PacketType.UseCircuitCode, HandleUseCircuitCode); | 4509 | AddLocalPacketHandler(PacketType.UseCircuitCode, HandleUseCircuitCode); |
4488 | AddLocalPacketHandler(PacketType.AgentHeightWidth, HandleAgentHeightWidth); | 4510 | AddLocalPacketHandler(PacketType.AgentHeightWidth, HandleAgentHeightWidth, false); |
4489 | AddLocalPacketHandler(PacketType.InventoryDescendents, HandleInventoryDescendents); | 4511 | AddLocalPacketHandler(PacketType.InventoryDescendents, HandleInventoryDescendents); |
4490 | AddLocalPacketHandler(PacketType.DirPlacesQuery, HandleDirPlacesQuery); | 4512 | AddLocalPacketHandler(PacketType.DirPlacesQuery, HandleDirPlacesQuery); |
4491 | AddLocalPacketHandler(PacketType.DirFindQuery, HandleDirFindQuery); | 4513 | AddLocalPacketHandler(PacketType.DirFindQuery, HandleDirFindQuery); |
@@ -15757,6 +15779,26 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
15757 | } | 15779 | } |
15758 | #endregion | 15780 | #endregion |
15759 | } | 15781 | } |
15782 | |||
15783 | public struct PacketProcessor | ||
15784 | { | ||
15785 | public PacketMethod method; | ||
15786 | public bool Async; | ||
15787 | } | ||
15788 | public class AsyncPacketProcess | ||
15789 | { | ||
15790 | public bool result = false; | ||
15791 | public readonly LLClientView ClientView = null; | ||
15792 | public readonly Packet Pack = null; | ||
15793 | public readonly PacketMethod Method = null; | ||
15794 | public AsyncPacketProcess(LLClientView pClientview, PacketMethod pMethod, Packet pPack) | ||
15795 | { | ||
15796 | ClientView = pClientview; | ||
15797 | Method = pMethod; | ||
15798 | Pack = pPack; | ||
15799 | } | ||
15800 | } | ||
15801 | |||
15760 | #endregion | 15802 | #endregion |
15761 | 15803 | ||
15762 | public static OSD BuildEvent(string eventName, OSD eventBody) | 15804 | 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 | |||
943 | } | 943 | } |
944 | 944 | ||
945 | if (packetInbox.Dequeue(100, ref incomingPacket)) | 945 | if (packetInbox.Dequeue(100, ref incomingPacket)) |
946 | Util.FireAndForget(ProcessInPacket, incomingPacket); | 946 | ProcessInPacket(incomingPacket);//, incomingPacket); Util.FireAndForget(ProcessInPacket, incomingPacket); |
947 | } | 947 | } |
948 | catch (Exception ex) | 948 | catch (Exception ex) |
949 | { | 949 | { |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 4241b20..eb284c1 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -574,10 +574,15 @@ namespace OpenSim.Region.Framework.Scenes | |||
574 | 574 | ||
575 | StatsReporter.SetObjectCapacity(objectCapacity); | 575 | StatsReporter.SetObjectCapacity(objectCapacity); |
576 | 576 | ||
577 | // Old | ||
578 | /* | ||
577 | m_simulatorVersion = simulatorVersion | 579 | m_simulatorVersion = simulatorVersion |
578 | + " (OS " + Util.GetOperatingSystemInformation() + ")" | 580 | + " (OS " + Util.GetOperatingSystemInformation() + ")" |
579 | + " ChilTasks:" + m_seeIntoRegionFromNeighbor.ToString() | 581 | + " ChilTasks:" + m_seeIntoRegionFromNeighbor.ToString() |
580 | + " PhysPrim:" + m_physicalPrim.ToString(); | 582 | + " PhysPrim:" + m_physicalPrim.ToString(); |
583 | */ | ||
584 | |||
585 | m_simulatorVersion = simulatorVersion + " (" + Util.GetRuntimeInformation() + ")"; | ||
581 | 586 | ||
582 | try | 587 | try |
583 | { | 588 | { |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index 5501679..1b7db7c 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 | |||
1970 | return ret; | 1970 | return ret; |
1971 | } | 1971 | } |
1972 | 1972 | ||
1973 | public int osGetSimulatorMemory() | ||
1974 | { | ||
1975 | CheckThreatLevel(ThreatLevel.Moderate, "osGetSimulatorMemory"); | ||
1976 | m_host.AddScriptLPS(1); | ||
1977 | long pws = System.Diagnostics.Process.GetCurrentProcess().WorkingSet64; | ||
1978 | |||
1979 | if (pws > Int32.MaxValue) | ||
1980 | return Int32.MaxValue; | ||
1981 | if (pws < 0) | ||
1982 | return 0; | ||
1983 | |||
1984 | return (int)pws; | ||
1985 | } | ||
1973 | } | 1986 | } |
1974 | } | 1987 | } |
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 | |||
163 | key osGetMapTexture(); | 163 | key osGetMapTexture(); |
164 | key osGetRegionMapTexture(string regionName); | 164 | key osGetRegionMapTexture(string regionName); |
165 | LSL_List osGetRegionStats(); | 165 | LSL_List osGetRegionStats(); |
166 | |||
167 | int osGetSimulatorMemory(); | ||
166 | } | 168 | } |
167 | } | 169 | } |
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 | |||
637 | { | 637 | { |
638 | return m_OSSL_Functions.osGetRegionStats(); | 638 | return m_OSSL_Functions.osGetRegionStats(); |
639 | } | 639 | } |
640 | |||
641 | /// <summary> | ||
642 | /// Returns the amount of memory in use by the Simulator Daemon. | ||
643 | /// Amount in bytes - if >= 4GB, returns 4GB. (LSL is not 64-bit aware) | ||
644 | /// </summary> | ||
645 | /// <returns></returns> | ||
646 | public LSL_Integer osGetSimulatorMemory() | ||
647 | { | ||
648 | return m_OSSL_Functions.osGetSimulatorMemory(); | ||
649 | } | ||
640 | } | 650 | } |
641 | } | 651 | } |