diff options
author | Teravus Ovares (Dan Olivares) | 2009-12-13 02:08:28 -0500 |
---|---|---|
committer | Teravus Ovares (Dan Olivares) | 2009-12-13 02:08:28 -0500 |
commit | 4ef8dc7d96fa2d4efd992ff7d304b8894f004c4f (patch) | |
tree | 74b879a7c715db89933260a07cc80fabe82ed568 /OpenSim/Region/ClientStack | |
parent | * Mistaken ThreatLevel classification on osGetSimulatorMemory - should have b... (diff) | |
download | opensim-SC_OLD-4ef8dc7d96fa2d4efd992ff7d304b8894f004c4f.zip opensim-SC_OLD-4ef8dc7d96fa2d4efd992ff7d304b8894f004c4f.tar.gz opensim-SC_OLD-4ef8dc7d96fa2d4efd992ff7d304b8894f004c4f.tar.bz2 opensim-SC_OLD-4ef8dc7d96fa2d4efd992ff7d304b8894f004c4f.tar.xz |
* 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.
Diffstat (limited to 'OpenSim/Region/ClientStack')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 136 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs | 2 |
2 files changed, 90 insertions, 48 deletions
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 | |||
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,26 +4362,26 @@ 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); |
4360 | AddLocalPacketHandler(PacketType.RezObject, HandlerRezObject); | 4382 | AddLocalPacketHandler(PacketType.RezObject, HandlerRezObject); |
4361 | AddLocalPacketHandler(PacketType.DeRezObject, HandlerDeRezObject); | 4383 | AddLocalPacketHandler(PacketType.DeRezObject, HandlerDeRezObject); |
4362 | AddLocalPacketHandler(PacketType.ModifyLand, HandlerModifyLand); | 4384 | AddLocalPacketHandler(PacketType.ModifyLand, HandlerModifyLand, false); |
4363 | AddLocalPacketHandler(PacketType.RegionHandshakeReply, HandlerRegionHandshakeReply); | 4385 | AddLocalPacketHandler(PacketType.RegionHandshakeReply, HandlerRegionHandshakeReply); |
4364 | AddLocalPacketHandler(PacketType.AgentWearablesRequest, HandlerAgentWearablesRequest); | 4386 | AddLocalPacketHandler(PacketType.AgentWearablesRequest, HandlerAgentWearablesRequest); |
4365 | AddLocalPacketHandler(PacketType.AgentSetAppearance, HandlerAgentSetAppearance); | 4387 | AddLocalPacketHandler(PacketType.AgentSetAppearance, HandlerAgentSetAppearance); |
@@ -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 | { |