Shuffle order of code in invnetory connector GetFolderContent() calls to avoid a possible race condition
parent
42f1b88eb2
commit
8fb3e71b14
|
@ -185,15 +185,18 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
|
|||
public InventoryCollection GetFolderContent(UUID userID, UUID folderID)
|
||||
{
|
||||
InventoryCollection invCol = m_InventoryService.GetFolderContent(userID, folderID);
|
||||
Util.FireAndForget(delegate
|
||||
|
||||
if (UserManager != null)
|
||||
{
|
||||
if (UserManager != null)
|
||||
// Protect ourselves against the caller subsequently modifying the items list
|
||||
List<InventoryItemBase> items = new List<InventoryItemBase>(invCol.Items);
|
||||
|
||||
Util.FireAndForget(delegate
|
||||
{
|
||||
// Protect ourselves against the caller subsequently modifying the items list
|
||||
foreach (InventoryItemBase item in new List<InventoryItemBase>(invCol.Items))
|
||||
foreach (InventoryItemBase item in items)
|
||||
UserManager.AddUser(item.CreatorIdAsUuid, item.CreatorData);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
return invCol;
|
||||
}
|
||||
|
|
|
@ -193,15 +193,18 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
|
|||
public InventoryCollection GetFolderContent(UUID userID, UUID folderID)
|
||||
{
|
||||
InventoryCollection invCol = m_RemoteConnector.GetFolderContent(userID, folderID);
|
||||
Util.FireAndForget(delegate
|
||||
|
||||
if (UserManager != null)
|
||||
{
|
||||
if (UserManager != null)
|
||||
// Protect ourselves against the caller subsequently modifying the items list
|
||||
List<InventoryItemBase> items = new List<InventoryItemBase>(invCol.Items);
|
||||
|
||||
Util.FireAndForget(delegate
|
||||
{
|
||||
// Protect ourselves against the caller subsequently modifying the items list
|
||||
foreach (InventoryItemBase item in new List<InventoryItemBase>(invCol.Items))
|
||||
foreach (InventoryItemBase item in items)
|
||||
UserManager.AddUser(item.CreatorIdAsUuid, item.CreatorData);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
return invCol;
|
||||
}
|
||||
|
|
|
@ -875,7 +875,7 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
// m_log.DebugFormat(
|
||||
// "[PRIM INVENTORY]: Not sending inventory data for part {0} {1} {2} for {3} since no items",
|
||||
// m_part.Name, m_part.LocalId, m_part.UUID, client.Name);
|
||||
|
||||
|
||||
client.SendTaskInventory(m_part.UUID, 0, new byte[0]);
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue