diff options
author | Diva Canto | 2009-08-20 22:36:47 -0700 |
---|---|---|
committer | Diva Canto | 2009-08-20 22:36:47 -0700 |
commit | e4f64dd7147001e1e0ac9bd4a51efec086727b29 (patch) | |
tree | 9a025be0ebbdf7193774e197b44391a8086e6b39 /OpenSim/Region/Framework | |
parent | Putting the inventory packets back to ThrottleOutPacketType.Asset, because th... (diff) | |
download | opensim-SC_OLD-e4f64dd7147001e1e0ac9bd4a51efec086727b29.zip opensim-SC_OLD-e4f64dd7147001e1e0ac9bd4a51efec086727b29.tar.gz opensim-SC_OLD-e4f64dd7147001e1e0ac9bd4a51efec086727b29.tar.bz2 opensim-SC_OLD-e4f64dd7147001e1e0ac9bd4a51efec086727b29.tar.xz |
Made HandleFetchInventoryDescendents async, so that the client thread doesn't wait for the download of the entire inventory.
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs index d722e23..2b815a2 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.PacketHandlers.cs | |||
@@ -441,9 +441,24 @@ namespace OpenSim.Region.Framework.Scenes | |||
441 | return; | 441 | return; |
442 | } | 442 | } |
443 | 443 | ||
444 | // We're going to send the reply async, because there may be | ||
445 | // an enormous quantity of packets -- basically the entire inventory! | ||
446 | // We don't want to block the client thread while all that is happening. | ||
447 | SendInventoryDelegate d = SendInventoryAsync; | ||
448 | d.BeginInvoke(remoteClient, folderID, ownerID, fetchFolders, fetchItems, sortOrder, SendInventoryComplete, d); | ||
449 | } | ||
450 | |||
451 | delegate void SendInventoryDelegate(IClientAPI remoteClient, UUID folderID, UUID ownerID, bool fetchFolders, bool fetchItems, int sortOrder); | ||
452 | |||
453 | void SendInventoryAsync(IClientAPI remoteClient, UUID folderID, UUID ownerID, bool fetchFolders, bool fetchItems, int sortOrder) | ||
454 | { | ||
444 | SendInventoryUpdate(remoteClient, new InventoryFolderBase(folderID), fetchFolders, fetchItems); | 455 | SendInventoryUpdate(remoteClient, new InventoryFolderBase(folderID), fetchFolders, fetchItems); |
445 | } | 456 | } |
446 | 457 | ||
458 | void SendInventoryComplete(IAsyncResult iar) | ||
459 | { | ||
460 | } | ||
461 | |||
447 | /// <summary> | 462 | /// <summary> |
448 | /// Handle the caps inventory descendents fetch. | 463 | /// Handle the caps inventory descendents fetch. |
449 | /// | 464 | /// |