Justin Clark-Casey wrote:
> This looks like a great change but could we make sure that the Author field
> is
> filled in on git am patches? Otherwise it's going to be a bit hard to tell
> who
> to talk to about which changes...
perhaps it would be good to have the core committer sign-off on the patch? that
way we'd know who dragged it in...
DrS
>
> Best,
>
> Justin
>
> [email protected] wrote:
>> The branch, master has been updated
>> via 71c9291 Inconsistent locking of SenseRepeaters in Script Engine.
>> from b0923e0 Fix a glitch in a ROBUST message
>>
>> Those revisions listed above that are new to this repository have
>> not appeared on any other notification email; so we list those
>> revisions in full, below.
>>
>> - Log -----------------------------------------------------------------
>>
>> commit 71c929137f48a0a7d97dbc866cbe2b12319aa40b
>> Author: unknown <administra...@.(none)>
>> Date: Fri Oct 23 03:52:49 2009 -0700
>>
>> Inconsistent locking of SenseRepeaters in Script Engine.
>>
>> When I attempt to 'save oar' on a region with thousands of scripts with
>> timers, I get a NullReferenceException every time. The problem comes from
>> inconsistent locking in SensorRepeat.cs of the SenseRepeaters List. It is
>> iterated and modified in many places and these places are all wrapped in a
>> lock except in the GetSerializationData(). This is the function throwing the
>> exception because an item in the list becomes null during iteration.
>>
>> The attached patch locks SenseRepeatListLock in GetSerializationData()
>>
>> 71c929137f48a0a7d97dbc866cbe2b12319aa40b
>> diff --git
>> a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs
>>
>> b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs
>> index ee01c3c..b75a2e4 100644
>> ---
>> a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs
>> +++
>> b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs
>> @@ -516,16 +516,19 @@ namespace
>> OpenSim.Region.ScriptEngine.Shared.Api.Plugins
>> {
>> List<Object> data = new List<Object>();
>>
>> - foreach (SenseRepeatClass ts in SenseRepeaters)
>> + lock (SenseRepeatListLock)
>> {
>> - if (ts.itemID == itemID)
>> + foreach (SenseRepeatClass ts in SenseRepeaters)
>> {
>> - data.Add(ts.interval);
>> - data.Add(ts.name);
>> - data.Add(ts.keyID);
>> - data.Add(ts.type);
>> - data.Add(ts.range);
>> - data.Add(ts.arc);
>> + if (ts.itemID == itemID)
>> + {
>> + data.Add(ts.interval);
>> + data.Add(ts.name);
>> + data.Add(ts.keyID);
>> + data.Add(ts.type);
>> + data.Add(ts.range);
>> + data.Add(ts.arc);
>> + }
>> }
>> }
>> return data.ToArray();
>>
>> -----------------------------------------------------------------------
>>
>> Summary of changes:
>> .../Api/Implementation/Plugins/SensorRepeat.cs | 19
>> +++++++++++--------
>> 1 files changed, 11 insertions(+), 8 deletions(-)
>> _______________________________________________
>> Opensim-commits mailing list
>> [email protected]
>> https://lists.berlios.de/mailman/listinfo/opensim-commits
>>
>
>
--
dr dirk husemann ---- virtual worlds research ---- ibm zurich research lab
SL: dr scofield ---- [email protected] ---- http://xyzzyxyzzy.net/
RL: [email protected] - +41 44 724 8573 - http://www.zurich.ibm.com/~hud/
_______________________________________________
Opensim-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/opensim-dev