Fix a slew of event like CHANGED_OWNER, attach() etc not working.

Optimization can ba taken too far. Compile scripts synchronously for
interactive rezzing because otherwise all events relating to rezzing/
wearing are lost.
melanie
Melanie Thielker 2017-01-06 23:35:39 +00:00
parent 3f3aaef66a
commit fa5c47b916
1 changed files with 8 additions and 1 deletions

View File

@ -1005,7 +1005,14 @@ namespace OpenSim.Region.ScriptEngine.XEngine
Object[] parms = new Object[]{localID, itemID, script, startParam, postOnRez, (StateSource)stateSource};
if (stateSource == (int)StateSource.ScriptedRez)
// There IS such a thing as too much optimization!!
// DON'T try to defer and queue the below states!
// Doing so may make rezzing snappier in world, but prevents
// vital events like attach, changed owner, etc, from firing.
// This just MUST be synchronous. Believe me, I'm The Author!
if (stateSource == (int)StateSource.ScriptedRez ||
stateSource == (int)StateSource.NewRez ||
stateSource == (int)StateSource.AttachedRez)
{
lock (m_CompileDict)
{