From 9f72fbcb7533bd960c38082cbd6956cd01fa6919 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Fri, 1 Jul 2011 21:25:40 +0100
Subject: Add an async inventory details sender to respond to FetchInventory
packets.
If a user with a very large inventory right-clicks on their "My Inventory" folder, viewer 1 code will send a massive number of Fetchinventory requests.
Even though each is handled asynchronously via a pool thread, the sheer frequency of requests overwhelms the pool and freezes inbound packet handling.
This change makes the first Fetchinventory thread also handle subsequent requests, freeing up the other threads.
Further efficiencies could be made by handling all the items in a particular FetchInventory request together, rather than separately.
---
.../Framework/Scenes/Scene.PacketHandlers.cs | 25 ----------------------
1 file changed, 25 deletions(-)
(limited to 'OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs')
diff --git a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs
index e2d7208..44472b2 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs
@@ -461,31 +461,6 @@ namespace OpenSim.Region.Framework.Scenes
}
);
}
-
-
- ///
- /// Handle a fetch inventory request from the client
- ///
- ///
- ///
- ///
- public void HandleFetchInventory(IClientAPI remoteClient, UUID itemID, UUID ownerID)
- {
- if (LibraryService != null && LibraryService.LibraryRootFolder != null && ownerID == LibraryService.LibraryRootFolder.Owner)
- {
- //m_log.Debug("request info for library item");
- return;
- }
-
- InventoryItemBase item = new InventoryItemBase(itemID, remoteClient.AgentId);
- item = InventoryService.GetItem(item);
-
- if (item != null)
- {
- remoteClient.SendInventoryItemDetails(ownerID, item);
- }
- // else shouldn't we send an alert message?
- }
///
/// Tell the client about the various child items and folders contained in the requested folder.
--
cgit v1.1