Made HandleFetchInventoryDescendents async, so that the client thread doesn't wait for the download of the entire inventory.
							parent
							
								
									9e64427262
								
							
						
					
					
						commit
						e4f64dd714
					
				| 
						 | 
				
			
			@ -441,9 +441,24 @@ namespace OpenSim.Region.Framework.Scenes
 | 
			
		|||
                return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // We're going to send the reply async, because there may be
 | 
			
		||||
            // an enormous quantity of packets -- basically the entire inventory!
 | 
			
		||||
            // We don't want to block the client thread while all that is happening.
 | 
			
		||||
            SendInventoryDelegate d = SendInventoryAsync;
 | 
			
		||||
            d.BeginInvoke(remoteClient, folderID, ownerID, fetchFolders, fetchItems, sortOrder, SendInventoryComplete, d);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        delegate void SendInventoryDelegate(IClientAPI remoteClient, UUID folderID, UUID ownerID, bool fetchFolders, bool fetchItems, int sortOrder);
 | 
			
		||||
 | 
			
		||||
        void SendInventoryAsync(IClientAPI remoteClient, UUID folderID, UUID ownerID, bool fetchFolders, bool fetchItems, int sortOrder)
 | 
			
		||||
        {
 | 
			
		||||
            SendInventoryUpdate(remoteClient, new InventoryFolderBase(folderID), fetchFolders, fetchItems);
 | 
			
		||||
        }        
 | 
			
		||||
        
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        void SendInventoryComplete(IAsyncResult iar)
 | 
			
		||||
        {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// Handle the caps inventory descendents fetch.
 | 
			
		||||
        ///
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -235,8 +235,6 @@ namespace OpenSim.Services.InventoryService
 | 
			
		|||
 | 
			
		||||
        public InventoryCollection GetFolderContent(UUID userID, UUID folderID)
 | 
			
		||||
        {
 | 
			
		||||
            m_log.Info("[INVENTORY SERVICE]: Processing request for folder " + folderID);
 | 
			
		||||
 | 
			
		||||
            // Uncomment me to simulate a slow responding inventory server
 | 
			
		||||
            //Thread.Sleep(16000);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -249,7 +247,7 @@ namespace OpenSim.Services.InventoryService
 | 
			
		|||
            invCollection.Folders = folders;
 | 
			
		||||
            invCollection.Items = items;
 | 
			
		||||
 | 
			
		||||
            m_log.DebugFormat("[INVENTORY SERVICE]: Found {0} items and {1} folders", items.Count, folders.Count);
 | 
			
		||||
            m_log.DebugFormat("[INVENTORY SERVICE]: Found {0} items and {1} folders in folder {2}", items.Count, folders.Count, folderID);
 | 
			
		||||
 | 
			
		||||
            return invCollection;            
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue