* Replaced (possibly broken?) math for calculating the unix timestamp in MySQLAssetData with Utils.DateTimeToUnixTime()

* Disabled UpdateAccessTime() function since it was only writing zeros anyways. This gave me a significant performance improvement for startup times and avatar logins in standalone mode
* Load attachments asynchronously so avatars with lots of attachments don't have to race the timeout clock to login
This commit is contained in:
John Hurliman
2009-10-14 19:23:44 -07:00
parent fe4109a5b0
commit 4790f8576c
4 changed files with 12 additions and 11 deletions

View File

@@ -2402,11 +2402,11 @@ namespace OpenSim.Region.Framework.Scenes
InventoryItemBase item = new InventoryItemBase(itemID, remoteClient.AgentId);
item = InventoryService.GetItem(item);
presence.Appearance.SetAttachment((int)AttachmentPt, itemID, item.AssetID /*att.UUID*/);
IAvatarFactory ava = RequestModuleInterface<IAvatarFactory>();
if (ava != null)
if (m_AvatarFactory != null)
{
m_log.InfoFormat("[SCENE INVENTORY]: Saving avatar attachment. AgentID:{0} ItemID:{1} AttachmentPoint:{2}", remoteClient.AgentId, itemID, AttachmentPt);
ava.UpdateDatabase(remoteClient.AgentId, presence.Appearance);
m_AvatarFactory.UpdateDatabase(remoteClient.AgentId, presence.Appearance);
}
}
}

View File

@@ -2481,7 +2481,7 @@ namespace OpenSim.Region.Framework.Scenes
if (aCircuit == null || aCircuit.child == false)
{
sp.IsChildAgent = false;
sp.RezAttachments();
Util.FireAndForget(delegate(object o) { sp.RezAttachments(); });
}
}

View File

@@ -3841,6 +3841,9 @@ namespace OpenSim.Region.Framework.Scenes
List<int> attPoints = m_appearance.GetAttachedPoints();
foreach (int p in attPoints)
{
if (m_isDeleted)
return;
UUID itemID = m_appearance.GetAttachedItem(p);
UUID assetID = m_appearance.GetAttachedAsset(p);
@@ -3866,9 +3869,7 @@ namespace OpenSim.Region.Framework.Scenes
{
m_log.ErrorFormat("[ATTACHMENT]: Unable to rez attachment: {0}", e.ToString());
}
}
}
}
}