diff options
author | Diva Canto | 2015-06-05 10:07:50 -0700 |
---|---|---|
committer | Diva Canto | 2015-06-05 10:07:50 -0700 |
commit | 96f0c6f074301484b44ce29c1a92ce13766f9883 (patch) | |
tree | e9d9d084d73ac32183dbf641e8053254645592ab /OpenSim | |
parent | The only purpose of this commit is to remove an erroneous comment. It turns o... (diff) | |
download | opensim-SC-96f0c6f074301484b44ce29c1a92ce13766f9883.zip opensim-SC-96f0c6f074301484b44ce29c1a92ce13766f9883.tar.gz opensim-SC-96f0c6f074301484b44ce29c1a92ce13766f9883.tar.bz2 opensim-SC-96f0c6f074301484b44ce29c1a92ce13766f9883.tar.xz |
More on mantis #7567. Two things:
- Increase the inventory cache timeout to 20 secs, so that the items will still be there when they are needed by the sim for rezzing
- Before rezzing attachs, make a call to GetMultipleItems so to fetch them all at the same time
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs | 8 | ||||
-rw-r--r-- | OpenSim/Services/Connectors/Inventory/XInventoryServicesConnector.cs | 6 |
2 files changed, 12 insertions, 2 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs index 77abcd7..59c2179 100644 --- a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs | |||
@@ -304,6 +304,14 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments | |||
304 | m_log.DebugFormat("[ATTACHMENTS MODULE]: Rezzing any attachments for {0} from simulator-side", sp.Name); | 304 | m_log.DebugFormat("[ATTACHMENTS MODULE]: Rezzing any attachments for {0} from simulator-side", sp.Name); |
305 | 305 | ||
306 | List<AvatarAttachment> attachments = sp.Appearance.GetAttachments(); | 306 | List<AvatarAttachment> attachments = sp.Appearance.GetAttachments(); |
307 | |||
308 | // Let's get all items at once, so they get cached | ||
309 | UUID[] items = new UUID[attachments.Count]; | ||
310 | int i = 0; | ||
311 | foreach (AvatarAttachment attach in attachments) | ||
312 | items[i++] = attach.ItemID; | ||
313 | m_scene.InventoryService.GetMultipleItems(sp.UUID, items); | ||
314 | |||
307 | foreach (AvatarAttachment attach in attachments) | 315 | foreach (AvatarAttachment attach in attachments) |
308 | { | 316 | { |
309 | uint attachmentPt = (uint)attach.AttachPoint; | 317 | uint attachmentPt = (uint)attach.AttachPoint; |
diff --git a/OpenSim/Services/Connectors/Inventory/XInventoryServicesConnector.cs b/OpenSim/Services/Connectors/Inventory/XInventoryServicesConnector.cs index a68ec5a..597d92b 100644 --- a/OpenSim/Services/Connectors/Inventory/XInventoryServicesConnector.cs +++ b/OpenSim/Services/Connectors/Inventory/XInventoryServicesConnector.cs | |||
@@ -62,7 +62,7 @@ namespace OpenSim.Services.Connectors | |||
62 | /// </remarks> | 62 | /// </remarks> |
63 | private int m_requestTimeoutSecs = -1; | 63 | private int m_requestTimeoutSecs = -1; |
64 | 64 | ||
65 | private const double CACHE_EXPIRATION_SECONDS = 8.0; | 65 | private const double CACHE_EXPIRATION_SECONDS = 20.0; |
66 | private static ExpiringCache<UUID, InventoryItemBase> m_ItemCache = new ExpiringCache<UUID,InventoryItemBase>(); | 66 | private static ExpiringCache<UUID, InventoryItemBase> m_ItemCache = new ExpiringCache<UUID,InventoryItemBase>(); |
67 | 67 | ||
68 | public XInventoryServicesConnector() | 68 | public XInventoryServicesConnector() |
@@ -244,7 +244,7 @@ namespace OpenSim.Services.Connectors | |||
244 | public virtual InventoryCollection[] GetMultipleFoldersContent(UUID principalID, UUID[] folderIDs) | 244 | public virtual InventoryCollection[] GetMultipleFoldersContent(UUID principalID, UUID[] folderIDs) |
245 | { | 245 | { |
246 | InventoryCollection[] inventoryArr = new InventoryCollection[folderIDs.Length]; | 246 | InventoryCollection[] inventoryArr = new InventoryCollection[folderIDs.Length]; |
247 | //m_log.DebugFormat("[XXX]: In GetMultipleFoldersContent {0}", folderIDs.Length); | 247 | // m_log.DebugFormat("[XXX]: In GetMultipleFoldersContent {0}", String.Join(",", folderIDs)); |
248 | try | 248 | try |
249 | { | 249 | { |
250 | Dictionary<string, object> resultSet = MakeRequest("GETMULTIPLEFOLDERSCONTENT", | 250 | Dictionary<string, object> resultSet = MakeRequest("GETMULTIPLEFOLDERSCONTENT", |
@@ -544,6 +544,8 @@ namespace OpenSim.Services.Connectors | |||
544 | 544 | ||
545 | public virtual InventoryItemBase[] GetMultipleItems(UUID principalID, UUID[] itemIDs) | 545 | public virtual InventoryItemBase[] GetMultipleItems(UUID principalID, UUID[] itemIDs) |
546 | { | 546 | { |
547 | //m_log.DebugFormat("[XXX]: In GetMultipleItems {0}", String.Join(",", itemIDs)); | ||
548 | |||
547 | InventoryItemBase[] itemArr = new InventoryItemBase[itemIDs.Length]; | 549 | InventoryItemBase[] itemArr = new InventoryItemBase[itemIDs.Length]; |
548 | // Try to get them from the cache | 550 | // Try to get them from the cache |
549 | List<UUID> pending = new List<UUID>(); | 551 | List<UUID> pending = new List<UUID>(); |