diff options
22 files changed, 101 insertions, 69 deletions
diff --git a/OpenSim/Region/ScriptEngine/Interfaces/IScriptApi.cs b/OpenSim/Region/ScriptEngine/Interfaces/IScriptApi.cs index 30e99b0..b9970bf 100644 --- a/OpenSim/Region/ScriptEngine/Interfaces/IScriptApi.cs +++ b/OpenSim/Region/ScriptEngine/Interfaces/IScriptApi.cs | |||
@@ -46,6 +46,6 @@ namespace OpenSim.Region.ScriptEngine.Interfaces | |||
46 | /// <param name='item'>/param> | 46 | /// <param name='item'>/param> |
47 | /// <param name='coopSleepHandle'>/param> | 47 | /// <param name='coopSleepHandle'>/param> |
48 | void Initialize( | 48 | void Initialize( |
49 | IScriptEngine scriptEngine, SceneObjectPart host, TaskInventoryItem item, WaitHandle coopSleepHandle); | 49 | IScriptEngine scriptEngine, SceneObjectPart host, TaskInventoryItem item); |
50 | } | 50 | } |
51 | } \ No newline at end of file | 51 | } |
diff --git a/OpenSim/Region/ScriptEngine/Interfaces/IScriptEngine.cs b/OpenSim/Region/ScriptEngine/Interfaces/IScriptEngine.cs index b8fdd01..6355669 100644 --- a/OpenSim/Region/ScriptEngine/Interfaces/IScriptEngine.cs +++ b/OpenSim/Region/ScriptEngine/Interfaces/IScriptEngine.cs | |||
@@ -110,5 +110,7 @@ namespace OpenSim.Region.ScriptEngine.Interfaces | |||
110 | ParameterInfo[] ScriptBaseClassParameters { get; } | 110 | ParameterInfo[] ScriptBaseClassParameters { get; } |
111 | 111 | ||
112 | IScriptApi GetApi(UUID itemID, string name); | 112 | IScriptApi GetApi(UUID itemID, string name); |
113 | |||
114 | void SleepScript(UUID itemID, int delay); | ||
113 | } | 115 | } |
114 | } | 116 | } |
diff --git a/OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs b/OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs index 16641f7..e4297c4 100644 --- a/OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs +++ b/OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs | |||
@@ -29,6 +29,7 @@ using System; | |||
29 | using System.Collections; | 29 | using System.Collections; |
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using System.Threading; | 31 | using System.Threading; |
32 | using System.Diagnostics; | ||
32 | using OpenMetaverse; | 33 | using OpenMetaverse; |
33 | using log4net; | 34 | using log4net; |
34 | using OpenSim.Framework; | 35 | using OpenSim.Framework; |
@@ -163,6 +164,9 @@ namespace OpenSim.Region.ScriptEngine.Interfaces | |||
163 | void ClearQueue(); | 164 | void ClearQueue(); |
164 | int StartParam { get; set; } | 165 | int StartParam { get; set; } |
165 | 166 | ||
167 | WaitHandle CoopWaitHandle { get; } | ||
168 | Stopwatch ExecutionTimer { get; } | ||
169 | |||
166 | void RemoveState(); | 170 | void RemoveState(); |
167 | 171 | ||
168 | void Init(); | 172 | void Init(); |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 946680c..f364032 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -101,8 +101,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
101 | /// Used for script sleeps when we are using co-operative script termination. | 101 | /// Used for script sleeps when we are using co-operative script termination. |
102 | /// </summary> | 102 | /// </summary> |
103 | /// <remarks>null if co-operative script termination is not active</remarks> | 103 | /// <remarks>null if co-operative script termination is not active</remarks> |
104 | WaitHandle m_coopSleepHandle; | ||
105 | |||
106 | /// <summary> | 104 | /// <summary> |
107 | /// The item that hosts this script | 105 | /// The item that hosts this script |
108 | /// </summary> | 106 | /// </summary> |
@@ -262,12 +260,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
262 | }; | 260 | }; |
263 | 261 | ||
264 | public void Initialize( | 262 | public void Initialize( |
265 | IScriptEngine scriptEngine, SceneObjectPart host, TaskInventoryItem item, WaitHandle coopSleepHandle) | 263 | IScriptEngine scriptEngine, SceneObjectPart host, TaskInventoryItem item) |
266 | { | 264 | { |
267 | m_ScriptEngine = scriptEngine; | 265 | m_ScriptEngine = scriptEngine; |
268 | m_host = host; | 266 | m_host = host; |
269 | m_item = item; | 267 | m_item = item; |
270 | m_coopSleepHandle = coopSleepHandle; | ||
271 | 268 | ||
272 | LoadConfig(); | 269 | LoadConfig(); |
273 | 270 | ||
@@ -406,21 +403,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
406 | 403 | ||
407 | protected virtual void Sleep(int delay) | 404 | protected virtual void Sleep(int delay) |
408 | { | 405 | { |
409 | if (m_coopSleepHandle == null) | 406 | m_ScriptEngine.SleepScript(m_item.ItemID, delay); |
410 | System.Threading.Thread.Sleep(delay); | ||
411 | else | ||
412 | CheckForCoopTermination(delay); | ||
413 | } | 407 | } |
414 | 408 | ||
415 | /// <summary> | 409 | /// <summary> |
416 | /// Check for co-operative termination. | 410 | /// Check for co-operative termination. |
417 | /// </summary> | 411 | /// </summary> |
418 | /// <param name='delay'>If called with 0, then just the check is performed with no wait.</param> | 412 | /// <param name='delay'>If called with 0, then just the check is performed with no wait.</param> |
419 | protected virtual void CheckForCoopTermination(int delay) | ||
420 | { | ||
421 | if (m_coopSleepHandle.WaitOne(delay)) | ||
422 | throw new ScriptCoopStopException(); | ||
423 | } | ||
424 | 413 | ||
425 | public Scene World | 414 | public Scene World |
426 | { | 415 | { |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs index 3406aea..e5e43f8 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs | |||
@@ -63,7 +63,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
63 | internal IScriptModuleComms m_comms = null; | 63 | internal IScriptModuleComms m_comms = null; |
64 | 64 | ||
65 | public void Initialize( | 65 | public void Initialize( |
66 | IScriptEngine scriptEngine, SceneObjectPart host, TaskInventoryItem item, WaitHandle coopSleepHandle) | 66 | IScriptEngine scriptEngine, SceneObjectPart host, TaskInventoryItem item) |
67 | { | 67 | { |
68 | m_ScriptEngine = scriptEngine; | 68 | m_ScriptEngine = scriptEngine; |
69 | m_host = host; | 69 | m_host = host; |
@@ -833,4 +833,4 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
833 | return success; | 833 | return success; |
834 | } | 834 | } |
835 | } | 835 | } |
836 | } \ No newline at end of file | 836 | } |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs index 92dd813..9929dac 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs | |||
@@ -66,7 +66,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
66 | internal IScriptModuleComms m_comms = null; | 66 | internal IScriptModuleComms m_comms = null; |
67 | 67 | ||
68 | public void Initialize( | 68 | public void Initialize( |
69 | IScriptEngine scriptEngine, SceneObjectPart host, TaskInventoryItem item, WaitHandle coopSleepHandle) | 69 | IScriptEngine scriptEngine, SceneObjectPart host, TaskInventoryItem item) |
70 | { | 70 | { |
71 | m_ScriptEngine = scriptEngine; | 71 | m_ScriptEngine = scriptEngine; |
72 | m_host = host; | 72 | m_host = host; |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index 123f8ca..c1f1ed5 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | |||
@@ -145,7 +145,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
145 | protected IUrlModule m_UrlModule = null; | 145 | protected IUrlModule m_UrlModule = null; |
146 | 146 | ||
147 | public void Initialize( | 147 | public void Initialize( |
148 | IScriptEngine scriptEngine, SceneObjectPart host, TaskInventoryItem item, WaitHandle coopSleepHandle) | 148 | IScriptEngine scriptEngine, SceneObjectPart host, TaskInventoryItem item) |
149 | { | 149 | { |
150 | m_ScriptEngine = scriptEngine; | 150 | m_ScriptEngine = scriptEngine; |
151 | m_host = host; | 151 | m_host = host; |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs index 8a744c3..fa6e6fc 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs | |||
@@ -100,6 +100,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance | |||
100 | 100 | ||
101 | public int DebugLevel { get; set; } | 101 | public int DebugLevel { get; set; } |
102 | 102 | ||
103 | public WaitHandle CoopWaitHandle { get; private set; } | ||
104 | public Stopwatch ExecutionTimer { get; private set; } | ||
105 | |||
103 | public Dictionary<KeyValuePair<int, int>, KeyValuePair<int, int>> LineMap { get; set; } | 106 | public Dictionary<KeyValuePair<int, int>, KeyValuePair<int, int>> LineMap { get; set; } |
104 | 107 | ||
105 | private Dictionary<string,IScriptApi> m_Apis = new Dictionary<string,IScriptApi>(); | 108 | private Dictionary<string,IScriptApi> m_Apis = new Dictionary<string,IScriptApi>(); |
@@ -234,6 +237,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance | |||
234 | { | 237 | { |
235 | State = "default"; | 238 | State = "default"; |
236 | EventQueue = new Queue(32); | 239 | EventQueue = new Queue(32); |
240 | ExecutionTimer = new Stopwatch(); | ||
237 | 241 | ||
238 | Engine = engine; | 242 | Engine = engine; |
239 | Part = part; | 243 | Part = part; |
@@ -286,12 +290,17 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance | |||
286 | m_stateSource = stateSource; | 290 | m_stateSource = stateSource; |
287 | m_coopTermination = coopTermination; | 291 | m_coopTermination = coopTermination; |
288 | 292 | ||
293 | if (m_coopTermination) | ||
294 | CoopWaitHandle = coopSleepHandle; | ||
295 | else | ||
296 | CoopWaitHandle = null; | ||
297 | |||
289 | ApiManager am = new ApiManager(); | 298 | ApiManager am = new ApiManager(); |
290 | 299 | ||
291 | foreach (string api in am.GetApis()) | 300 | foreach (string api in am.GetApis()) |
292 | { | 301 | { |
293 | m_Apis[api] = am.CreateApi(api); | 302 | m_Apis[api] = am.CreateApi(api); |
294 | m_Apis[api].Initialize(Engine, Part, ScriptTask, m_coopSleepHandle); | 303 | m_Apis[api].Initialize(Engine, Part, ScriptTask); |
295 | } | 304 | } |
296 | 305 | ||
297 | try | 306 | try |
@@ -766,8 +775,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance | |||
766 | if (Suspended) | 775 | if (Suspended) |
767 | return 0; | 776 | return 0; |
768 | 777 | ||
769 | Stopwatch timer = new Stopwatch(); | 778 | ExecutionTimer.Restart(); |
770 | timer.Start(); | ||
771 | 779 | ||
772 | try | 780 | try |
773 | { | 781 | { |
@@ -775,9 +783,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance | |||
775 | } | 783 | } |
776 | finally | 784 | finally |
777 | { | 785 | { |
778 | timer.Stop(); | 786 | ExecutionTimer.Stop(); |
779 | ExecutionTime.AddSample(timer); | 787 | ExecutionTime.AddSample(ExecutionTimer); |
780 | Part.ParentGroup.Scene.AddScriptExecutionTime(timer.ElapsedTicks); | 788 | Part.ParentGroup.Scene.AddScriptExecutionTime(ExecutionTimer.ElapsedTicks); |
781 | } | 789 | } |
782 | } | 790 | } |
783 | } | 791 | } |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiAvatarTests.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiAvatarTests.cs index 8170e9b..af1da7c 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiAvatarTests.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiAvatarTests.cs | |||
@@ -95,7 +95,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
95 | part.RotationOffset = new Quaternion(0.7071068f, 0, 0, 0.7071068f); | 95 | part.RotationOffset = new Quaternion(0.7071068f, 0, 0, 0.7071068f); |
96 | 96 | ||
97 | LSL_Api apiGrp1 = new LSL_Api(); | 97 | LSL_Api apiGrp1 = new LSL_Api(); |
98 | apiGrp1.Initialize(m_engine, part, null, null); | 98 | apiGrp1.Initialize(m_engine, part, null); |
99 | 99 | ||
100 | ScenePresence sp = SceneHelpers.AddScenePresence(m_scene, userId); | 100 | ScenePresence sp = SceneHelpers.AddScenePresence(m_scene, userId); |
101 | 101 | ||
@@ -155,4 +155,4 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
155 | } | 155 | } |
156 | } | 156 | } |
157 | } | 157 | } |
158 | } \ No newline at end of file | 158 | } |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiHttpTests.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiHttpTests.cs index e35de9c..9a5ebce 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiHttpTests.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiHttpTests.cs | |||
@@ -105,7 +105,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
105 | // This is disconnected from the actual script - the mock engine does not set up any LSL_Api atm. | 105 | // This is disconnected from the actual script - the mock engine does not set up any LSL_Api atm. |
106 | // Possibly this could be done and we could obtain it directly from the MockScriptEngine. | 106 | // Possibly this could be done and we could obtain it directly from the MockScriptEngine. |
107 | m_lslApi = new LSL_Api(); | 107 | m_lslApi = new LSL_Api(); |
108 | m_lslApi.Initialize(m_engine, so.RootPart, m_scriptItem, null); | 108 | m_lslApi.Initialize(m_engine, so.RootPart, m_scriptItem); |
109 | } | 109 | } |
110 | 110 | ||
111 | [TearDown] | 111 | [TearDown] |
@@ -245,4 +245,4 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
245 | } | 245 | } |
246 | } | 246 | } |
247 | } | 247 | } |
248 | } \ No newline at end of file | 248 | } |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiInventoryTests.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiInventoryTests.cs index 3ff4c6b..9b7cab2 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiInventoryTests.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiInventoryTests.cs | |||
@@ -94,7 +94,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
94 | TaskInventoryHelpers.AddSceneObject(m_scene.AssetService, so1.RootPart, inventoryItemName, itemId, userId); | 94 | TaskInventoryHelpers.AddSceneObject(m_scene.AssetService, so1.RootPart, inventoryItemName, itemId, userId); |
95 | 95 | ||
96 | LSL_Api api = new LSL_Api(); | 96 | LSL_Api api = new LSL_Api(); |
97 | api.Initialize(m_engine, so1.RootPart, null, null); | 97 | api.Initialize(m_engine, so1.RootPart, null); |
98 | 98 | ||
99 | // Create a second object | 99 | // Create a second object |
100 | SceneObjectGroup so2 = SceneHelpers.CreateSceneObject(1, userId, "so2", 0x100); | 100 | SceneObjectGroup so2 = SceneHelpers.CreateSceneObject(1, userId, "so2", 0x100); |
@@ -127,7 +127,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
127 | SceneObjectGroup so1 = SceneHelpers.CreateSceneObject(1, user1Id, "so1", 0x10); | 127 | SceneObjectGroup so1 = SceneHelpers.CreateSceneObject(1, user1Id, "so1", 0x10); |
128 | m_scene.AddSceneObject(so1); | 128 | m_scene.AddSceneObject(so1); |
129 | LSL_Api api = new LSL_Api(); | 129 | LSL_Api api = new LSL_Api(); |
130 | api.Initialize(m_engine, so1.RootPart, null, null); | 130 | api.Initialize(m_engine, so1.RootPart, null); |
131 | 131 | ||
132 | // Create an object embedded inside the first | 132 | // Create an object embedded inside the first |
133 | UUID itemId = TestHelpers.ParseTail(0x20); | 133 | UUID itemId = TestHelpers.ParseTail(0x20); |
@@ -137,7 +137,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
137 | SceneObjectGroup so2 = SceneHelpers.CreateSceneObject(1, user2Id, "so2", 0x100); | 137 | SceneObjectGroup so2 = SceneHelpers.CreateSceneObject(1, user2Id, "so2", 0x100); |
138 | m_scene.AddSceneObject(so2); | 138 | m_scene.AddSceneObject(so2); |
139 | LSL_Api api2 = new LSL_Api(); | 139 | LSL_Api api2 = new LSL_Api(); |
140 | api2.Initialize(m_engine, so2.RootPart, null, null); | 140 | api2.Initialize(m_engine, so2.RootPart, null); |
141 | 141 | ||
142 | // *** Firstly, we test where llAllowInventoryDrop() has not been called. *** | 142 | // *** Firstly, we test where llAllowInventoryDrop() has not been called. *** |
143 | api.llGiveInventory(so2.UUID.ToString(), inventoryItemName); | 143 | api.llGiveInventory(so2.UUID.ToString(), inventoryItemName); |
@@ -184,7 +184,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
184 | SceneObjectGroup so1 = SceneHelpers.CreateSceneObject(1, user1Id, "so1", 0x10); | 184 | SceneObjectGroup so1 = SceneHelpers.CreateSceneObject(1, user1Id, "so1", 0x10); |
185 | m_scene.AddSceneObject(so1); | 185 | m_scene.AddSceneObject(so1); |
186 | LSL_Api api = new LSL_Api(); | 186 | LSL_Api api = new LSL_Api(); |
187 | api.Initialize(m_engine, so1.RootPart, null, null); | 187 | api.Initialize(m_engine, so1.RootPart, null); |
188 | 188 | ||
189 | // Create an object embedded inside the first | 189 | // Create an object embedded inside the first |
190 | UUID itemId = TestHelpers.ParseTail(0x20); | 190 | UUID itemId = TestHelpers.ParseTail(0x20); |
@@ -218,7 +218,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
218 | SceneObjectGroup so1 = SceneHelpers.CreateSceneObject(1, user1Id, "so1", 0x10); | 218 | SceneObjectGroup so1 = SceneHelpers.CreateSceneObject(1, user1Id, "so1", 0x10); |
219 | m_scene.AddSceneObject(so1); | 219 | m_scene.AddSceneObject(so1); |
220 | LSL_Api api = new LSL_Api(); | 220 | LSL_Api api = new LSL_Api(); |
221 | api.Initialize(m_engine, so1.RootPart, null, null); | 221 | api.Initialize(m_engine, so1.RootPart, null); |
222 | 222 | ||
223 | // Create an object embedded inside the first | 223 | // Create an object embedded inside the first |
224 | UUID itemId = TestHelpers.ParseTail(0x20); | 224 | UUID itemId = TestHelpers.ParseTail(0x20); |
@@ -250,7 +250,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
250 | SceneObjectGroup sourceSo = SceneHelpers.AddSceneObject(m_scene, "sourceSo", user1Id); | 250 | SceneObjectGroup sourceSo = SceneHelpers.AddSceneObject(m_scene, "sourceSo", user1Id); |
251 | m_scene.AddSceneObject(sourceSo); | 251 | m_scene.AddSceneObject(sourceSo); |
252 | LSL_Api api = new LSL_Api(); | 252 | LSL_Api api = new LSL_Api(); |
253 | api.Initialize(m_engine, sourceSo.RootPart, null, null); | 253 | api.Initialize(m_engine, sourceSo.RootPart, null); |
254 | TaskInventoryHelpers.AddScript(m_scene.AssetService, sourceSo.RootPart, "script", "Hello World"); | 254 | TaskInventoryHelpers.AddScript(m_scene.AssetService, sourceSo.RootPart, "script", "Hello World"); |
255 | 255 | ||
256 | SceneObjectGroup targetSo = SceneHelpers.AddSceneObject(m_scene, "targetSo", user1Id); | 256 | SceneObjectGroup targetSo = SceneHelpers.AddSceneObject(m_scene, "targetSo", user1Id); |
@@ -285,4 +285,4 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
285 | Assert.IsNull(otherOwnedTargetSo.RootPart.Inventory.GetInventoryItem("script")); | 285 | Assert.IsNull(otherOwnedTargetSo.RootPart.Inventory.GetInventoryItem("script")); |
286 | } | 286 | } |
287 | } | 287 | } |
288 | } \ No newline at end of file | 288 | } |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiLinkingTests.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiLinkingTests.cs index b6f5e09..14b1890 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiLinkingTests.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiLinkingTests.cs | |||
@@ -104,7 +104,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
104 | m_scene.AddSceneObject(grp2); | 104 | m_scene.AddSceneObject(grp2); |
105 | 105 | ||
106 | LSL_Api apiGrp1 = new LSL_Api(); | 106 | LSL_Api apiGrp1 = new LSL_Api(); |
107 | apiGrp1.Initialize(m_engine, grp1.RootPart, grp1Item, null); | 107 | apiGrp1.Initialize(m_engine, grp1.RootPart, grp1Item); |
108 | 108 | ||
109 | apiGrp1.llCreateLink(grp2.UUID.ToString(), ScriptBaseClass.TRUE); | 109 | apiGrp1.llCreateLink(grp2.UUID.ToString(), ScriptBaseClass.TRUE); |
110 | 110 | ||
@@ -131,7 +131,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
131 | grp1Item.PermsMask |= ScriptBaseClass.PERMISSION_CHANGE_LINKS; | 131 | grp1Item.PermsMask |= ScriptBaseClass.PERMISSION_CHANGE_LINKS; |
132 | 132 | ||
133 | LSL_Api apiGrp1 = new LSL_Api(); | 133 | LSL_Api apiGrp1 = new LSL_Api(); |
134 | apiGrp1.Initialize(m_engine, grp1.RootPart, grp1Item, null); | 134 | apiGrp1.Initialize(m_engine, grp1.RootPart, grp1Item); |
135 | 135 | ||
136 | apiGrp1.llBreakLink(2); | 136 | apiGrp1.llBreakLink(2); |
137 | 137 | ||
@@ -160,7 +160,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
160 | grp1Item.PermsMask |= ScriptBaseClass.PERMISSION_CHANGE_LINKS; | 160 | grp1Item.PermsMask |= ScriptBaseClass.PERMISSION_CHANGE_LINKS; |
161 | 161 | ||
162 | LSL_Api apiGrp1 = new LSL_Api(); | 162 | LSL_Api apiGrp1 = new LSL_Api(); |
163 | apiGrp1.Initialize(m_engine, grp1.RootPart, grp1Item, null); | 163 | apiGrp1.Initialize(m_engine, grp1.RootPart, grp1Item); |
164 | 164 | ||
165 | apiGrp1.llBreakAllLinks(); | 165 | apiGrp1.llBreakAllLinks(); |
166 | 166 | ||
@@ -183,4 +183,4 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
183 | } | 183 | } |
184 | } | 184 | } |
185 | } | 185 | } |
186 | } \ No newline at end of file | 186 | } |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiListTests.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiListTests.cs index 0b1ae60..34a29e6 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiListTests.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiListTests.cs | |||
@@ -67,7 +67,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
67 | engine.AddRegion(scene); | 67 | engine.AddRegion(scene); |
68 | 68 | ||
69 | m_lslApi = new LSL_Api(); | 69 | m_lslApi = new LSL_Api(); |
70 | m_lslApi.Initialize(engine, part, null, null); | 70 | m_lslApi.Initialize(engine, part, null); |
71 | } | 71 | } |
72 | 72 | ||
73 | [Test] | 73 | [Test] |
@@ -133,4 +133,4 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
133 | } | 133 | } |
134 | } | 134 | } |
135 | } | 135 | } |
136 | } \ No newline at end of file | 136 | } |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiNotecardTests.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiNotecardTests.cs index 2ac12cb..9ab3115 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiNotecardTests.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiNotecardTests.cs | |||
@@ -66,7 +66,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
66 | // This is disconnected from the actual script - the mock engine does not set up any LSL_Api atm. | 66 | // This is disconnected from the actual script - the mock engine does not set up any LSL_Api atm. |
67 | // Possibly this could be done and we could obtain it directly from the MockScriptEngine. | 67 | // Possibly this could be done and we could obtain it directly from the MockScriptEngine. |
68 | m_lslApi = new LSL_Api(); | 68 | m_lslApi = new LSL_Api(); |
69 | m_lslApi.Initialize(m_engine, m_so.RootPart, m_scriptItem, null); | 69 | m_lslApi.Initialize(m_engine, m_so.RootPart, m_scriptItem); |
70 | } | 70 | } |
71 | 71 | ||
72 | [Test] | 72 | [Test] |
@@ -266,4 +266,4 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
266 | // } | 266 | // } |
267 | // } | 267 | // } |
268 | } | 268 | } |
269 | } \ No newline at end of file | 269 | } |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiObjectTests.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiObjectTests.cs index caf2b05..d957bf2 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiObjectTests.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiObjectTests.cs | |||
@@ -89,7 +89,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
89 | m_scene.AddSceneObject(grp1); | 89 | m_scene.AddSceneObject(grp1); |
90 | 90 | ||
91 | LSL_Api apiGrp1 = new LSL_Api(); | 91 | LSL_Api apiGrp1 = new LSL_Api(); |
92 | apiGrp1.Initialize(m_engine, grp1.RootPart, null, null); | 92 | apiGrp1.Initialize(m_engine, grp1.RootPart, null); |
93 | 93 | ||
94 | // Check simple 1 prim case | 94 | // Check simple 1 prim case |
95 | { | 95 | { |
@@ -167,7 +167,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
167 | Assert.That(scene.AddNewSceneObject(new SceneObjectGroup(part1), false), Is.True); | 167 | Assert.That(scene.AddNewSceneObject(new SceneObjectGroup(part1), false), Is.True); |
168 | 168 | ||
169 | LSL_Api apiGrp1 = new LSL_Api(); | 169 | LSL_Api apiGrp1 = new LSL_Api(); |
170 | apiGrp1.Initialize(m_engine, part1, null, null); | 170 | apiGrp1.Initialize(m_engine, part1, null); |
171 | 171 | ||
172 | // Note that prim hollow check is passed with the other prim params in order to allow the | 172 | // Note that prim hollow check is passed with the other prim params in order to allow the |
173 | // specification of a different check value from the prim param. A cylinder, prism, sphere, | 173 | // specification of a different check value from the prim param. A cylinder, prism, sphere, |
@@ -395,4 +395,4 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
395 | } | 395 | } |
396 | 396 | ||
397 | } | 397 | } |
398 | } \ No newline at end of file | 398 | } |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiTest.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiTest.cs index 1b7aa63..d929da8 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiTest.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiTest.cs | |||
@@ -65,7 +65,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
65 | engine.AddRegion(scene); | 65 | engine.AddRegion(scene); |
66 | 66 | ||
67 | m_lslApi = new LSL_Api(); | 67 | m_lslApi = new LSL_Api(); |
68 | m_lslApi.Initialize(engine, part, null, null); | 68 | m_lslApi.Initialize(engine, part, null); |
69 | } | 69 | } |
70 | 70 | ||
71 | [Test] | 71 | [Test] |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiUserTests.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiUserTests.cs index 40082b5..a8964bf 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiUserTests.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Tests/LSL_ApiUserTests.cs | |||
@@ -71,7 +71,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
71 | TaskInventoryItem scriptItem = TaskInventoryHelpers.AddScript(m_scene.AssetService, part); | 71 | TaskInventoryItem scriptItem = TaskInventoryHelpers.AddScript(m_scene.AssetService, part); |
72 | 72 | ||
73 | LSL_Api apiGrp1 = new LSL_Api(); | 73 | LSL_Api apiGrp1 = new LSL_Api(); |
74 | apiGrp1.Initialize(m_engine, part, scriptItem, null); | 74 | apiGrp1.Initialize(m_engine, part, scriptItem); |
75 | 75 | ||
76 | // Initially long timeout to test cache | 76 | // Initially long timeout to test cache |
77 | apiGrp1.LlRequestAgentDataCacheTimeoutMs = 20000; | 77 | apiGrp1.LlRequestAgentDataCacheTimeoutMs = 20000; |
@@ -154,4 +154,4 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
154 | } | 154 | } |
155 | } | 155 | } |
156 | } | 156 | } |
157 | } \ No newline at end of file | 157 | } |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiAppearanceTest.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiAppearanceTest.cs index 4c31969..2f9a564 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiAppearanceTest.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiAppearanceTest.cs | |||
@@ -93,7 +93,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
93 | m_scene.AddSceneObject(so); | 93 | m_scene.AddSceneObject(so); |
94 | 94 | ||
95 | OSSL_Api osslApi = new OSSL_Api(); | 95 | OSSL_Api osslApi = new OSSL_Api(); |
96 | osslApi.Initialize(m_engine, part, null, null); | 96 | osslApi.Initialize(m_engine, part, null); |
97 | 97 | ||
98 | string notecardName = "appearanceNc"; | 98 | string notecardName = "appearanceNc"; |
99 | 99 | ||
@@ -134,7 +134,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
134 | m_scene.AddSceneObject(so); | 134 | m_scene.AddSceneObject(so); |
135 | 135 | ||
136 | OSSL_Api osslApi = new OSSL_Api(); | 136 | OSSL_Api osslApi = new OSSL_Api(); |
137 | osslApi.Initialize(m_engine, part, null, null); | 137 | osslApi.Initialize(m_engine, part, null); |
138 | 138 | ||
139 | string notecardName = "appearanceNc"; | 139 | string notecardName = "appearanceNc"; |
140 | 140 | ||
@@ -158,4 +158,4 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
158 | Assert.That(savedAppearance.AvatarHeight, Is.EqualTo(sp.Appearance.AvatarHeight)); | 158 | Assert.That(savedAppearance.AvatarHeight, Is.EqualTo(sp.Appearance.AvatarHeight)); |
159 | } | 159 | } |
160 | } | 160 | } |
161 | } \ No newline at end of file | 161 | } |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiAttachmentTests.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiAttachmentTests.cs index 2fe558a..b6b3f12 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiAttachmentTests.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiAttachmentTests.cs | |||
@@ -98,9 +98,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
98 | SceneObjectGroup inWorldObj = SceneHelpers.AddSceneObject(m_scene, "inWorldObj", ua1.PrincipalID); | 98 | SceneObjectGroup inWorldObj = SceneHelpers.AddSceneObject(m_scene, "inWorldObj", ua1.PrincipalID); |
99 | TaskInventoryItem scriptItem = TaskInventoryHelpers.AddScript(m_scene.AssetService, inWorldObj.RootPart); | 99 | TaskInventoryItem scriptItem = TaskInventoryHelpers.AddScript(m_scene.AssetService, inWorldObj.RootPart); |
100 | 100 | ||
101 | new LSL_Api().Initialize(m_engine, inWorldObj.RootPart, scriptItem, null); | 101 | new LSL_Api().Initialize(m_engine, inWorldObj.RootPart, scriptItem); |
102 | OSSL_Api osslApi = new OSSL_Api(); | 102 | OSSL_Api osslApi = new OSSL_Api(); |
103 | osslApi.Initialize(m_engine, inWorldObj.RootPart, scriptItem, null); | 103 | osslApi.Initialize(m_engine, inWorldObj.RootPart, scriptItem); |
104 | 104 | ||
105 | // SceneObjectGroup sog1 = SceneHelpers.CreateSceneObject(1, ua1.PrincipalID); | 105 | // SceneObjectGroup sog1 = SceneHelpers.CreateSceneObject(1, ua1.PrincipalID); |
106 | 106 | ||
@@ -144,9 +144,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
144 | SceneObjectGroup inWorldObj = SceneHelpers.AddSceneObject(m_scene, "inWorldObj", ua1.PrincipalID); | 144 | SceneObjectGroup inWorldObj = SceneHelpers.AddSceneObject(m_scene, "inWorldObj", ua1.PrincipalID); |
145 | TaskInventoryItem scriptItem = TaskInventoryHelpers.AddScript(m_scene.AssetService, inWorldObj.RootPart); | 145 | TaskInventoryItem scriptItem = TaskInventoryHelpers.AddScript(m_scene.AssetService, inWorldObj.RootPart); |
146 | 146 | ||
147 | new LSL_Api().Initialize(m_engine, inWorldObj.RootPart, scriptItem, null); | 147 | new LSL_Api().Initialize(m_engine, inWorldObj.RootPart, scriptItem); |
148 | OSSL_Api osslApi = new OSSL_Api(); | 148 | OSSL_Api osslApi = new OSSL_Api(); |
149 | osslApi.Initialize(m_engine, inWorldObj.RootPart, scriptItem, null); | 149 | osslApi.Initialize(m_engine, inWorldObj.RootPart, scriptItem); |
150 | 150 | ||
151 | // Create an object embedded inside the first | 151 | // Create an object embedded inside the first |
152 | TaskInventoryHelpers.AddNotecard( | 152 | TaskInventoryHelpers.AddNotecard( |
@@ -192,9 +192,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
192 | SceneObjectGroup inWorldObj = SceneHelpers.AddSceneObject(m_scene, "inWorldObj", ua1.PrincipalID); | 192 | SceneObjectGroup inWorldObj = SceneHelpers.AddSceneObject(m_scene, "inWorldObj", ua1.PrincipalID); |
193 | TaskInventoryItem scriptItem = TaskInventoryHelpers.AddScript(m_scene.AssetService, inWorldObj.RootPart); | 193 | TaskInventoryItem scriptItem = TaskInventoryHelpers.AddScript(m_scene.AssetService, inWorldObj.RootPart); |
194 | 194 | ||
195 | new LSL_Api().Initialize(m_engine, inWorldObj.RootPart, scriptItem, null); | 195 | new LSL_Api().Initialize(m_engine, inWorldObj.RootPart, scriptItem); |
196 | OSSL_Api osslApi = new OSSL_Api(); | 196 | OSSL_Api osslApi = new OSSL_Api(); |
197 | osslApi.Initialize(m_engine, inWorldObj.RootPart, scriptItem, null); | 197 | osslApi.Initialize(m_engine, inWorldObj.RootPart, scriptItem); |
198 | 198 | ||
199 | // Create an object embedded inside the first | 199 | // Create an object embedded inside the first |
200 | TaskInventoryHelpers.AddSceneObject( | 200 | TaskInventoryHelpers.AddSceneObject( |
@@ -229,4 +229,4 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
229 | Assert.That(sp2.Appearance.GetAttachpoint(attachmentsInAppearance2[0].ItemID), Is.EqualTo((uint)attachPoint)); | 229 | Assert.That(sp2.Appearance.GetAttachpoint(attachmentsInAppearance2[0].ItemID), Is.EqualTo((uint)attachPoint)); |
230 | } | 230 | } |
231 | } | 231 | } |
232 | } \ No newline at end of file | 232 | } |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs b/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs index 398ccbe..99bff83 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Tests/OSSL_ApiNpcTests.cs | |||
@@ -99,7 +99,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
99 | m_scene.AddSceneObject(so); | 99 | m_scene.AddSceneObject(so); |
100 | 100 | ||
101 | OSSL_Api osslApi = new OSSL_Api(); | 101 | OSSL_Api osslApi = new OSSL_Api(); |
102 | osslApi.Initialize(m_engine, part, null, null); | 102 | osslApi.Initialize(m_engine, part, null); |
103 | 103 | ||
104 | string notecardName = "appearanceNc"; | 104 | string notecardName = "appearanceNc"; |
105 | osslApi.osOwnerSaveAppearance(notecardName); | 105 | osslApi.osOwnerSaveAppearance(notecardName); |
@@ -125,7 +125,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
125 | m_scene.AddSceneObject(so); | 125 | m_scene.AddSceneObject(so); |
126 | 126 | ||
127 | OSSL_Api osslApi = new OSSL_Api(); | 127 | OSSL_Api osslApi = new OSSL_Api(); |
128 | osslApi.Initialize(m_engine, so.RootPart, null, null); | 128 | osslApi.Initialize(m_engine, so.RootPart, null); |
129 | 129 | ||
130 | bool gotExpectedException = false; | 130 | bool gotExpectedException = false; |
131 | try | 131 | try |
@@ -160,7 +160,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
160 | m_scene.AddSceneObject(so); | 160 | m_scene.AddSceneObject(so); |
161 | 161 | ||
162 | OSSL_Api osslApi = new OSSL_Api(); | 162 | OSSL_Api osslApi = new OSSL_Api(); |
163 | osslApi.Initialize(m_engine, part, null, null); | 163 | osslApi.Initialize(m_engine, part, null); |
164 | 164 | ||
165 | string notecardName = "appearanceNc"; | 165 | string notecardName = "appearanceNc"; |
166 | osslApi.osOwnerSaveAppearance(notecardName); | 166 | osslApi.osOwnerSaveAppearance(notecardName); |
@@ -195,7 +195,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
195 | m_scene.AddSceneObject(so); | 195 | m_scene.AddSceneObject(so); |
196 | 196 | ||
197 | OSSL_Api osslApi = new OSSL_Api(); | 197 | OSSL_Api osslApi = new OSSL_Api(); |
198 | osslApi.Initialize(m_engine, part, null, null); | 198 | osslApi.Initialize(m_engine, part, null); |
199 | 199 | ||
200 | osslApi.osOwnerSaveAppearance(firstAppearanceNcName); | 200 | osslApi.osOwnerSaveAppearance(firstAppearanceNcName); |
201 | 201 | ||
@@ -233,7 +233,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
233 | m_scene.AddSceneObject(so); | 233 | m_scene.AddSceneObject(so); |
234 | 234 | ||
235 | OSSL_Api osslApi = new OSSL_Api(); | 235 | OSSL_Api osslApi = new OSSL_Api(); |
236 | osslApi.Initialize(m_engine, part, null, null); | 236 | osslApi.Initialize(m_engine, part, null); |
237 | 237 | ||
238 | osslApi.osOwnerSaveAppearance(firstAppearanceNcName); | 238 | osslApi.osOwnerSaveAppearance(firstAppearanceNcName); |
239 | 239 | ||
@@ -285,10 +285,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
285 | m_scene.AddSceneObject(otherSo); | 285 | m_scene.AddSceneObject(otherSo); |
286 | 286 | ||
287 | OSSL_Api osslApi = new OSSL_Api(); | 287 | OSSL_Api osslApi = new OSSL_Api(); |
288 | osslApi.Initialize(m_engine, part, null, null); | 288 | osslApi.Initialize(m_engine, part, null); |
289 | 289 | ||
290 | OSSL_Api otherOsslApi = new OSSL_Api(); | 290 | OSSL_Api otherOsslApi = new OSSL_Api(); |
291 | otherOsslApi.Initialize(m_engine, otherPart, null, null); | 291 | otherOsslApi.Initialize(m_engine, otherPart, null); |
292 | 292 | ||
293 | string notecardName = "appearanceNc"; | 293 | string notecardName = "appearanceNc"; |
294 | osslApi.osOwnerSaveAppearance(notecardName); | 294 | osslApi.osOwnerSaveAppearance(notecardName); |
@@ -332,7 +332,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
332 | m_scene.AddSceneObject(so); | 332 | m_scene.AddSceneObject(so); |
333 | 333 | ||
334 | OSSL_Api osslApi = new OSSL_Api(); | 334 | OSSL_Api osslApi = new OSSL_Api(); |
335 | osslApi.Initialize(m_engine, part, null, null); | 335 | osslApi.Initialize(m_engine, part, null); |
336 | 336 | ||
337 | string notecardName = "appearanceNc"; | 337 | string notecardName = "appearanceNc"; |
338 | osslApi.osOwnerSaveAppearance(notecardName); | 338 | osslApi.osOwnerSaveAppearance(notecardName); |
@@ -348,4 +348,4 @@ namespace OpenSim.Region.ScriptEngine.Shared.Tests | |||
348 | Assert.That(npc, Is.Null); | 348 | Assert.That(npc, Is.Null); |
349 | } | 349 | } |
350 | } | 350 | } |
351 | } \ No newline at end of file | 351 | } |
diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs index 62bf803..78d4ee9 100755 --- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs | |||
@@ -2435,5 +2435,30 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
2435 | running = instance.Running; | 2435 | running = instance.Running; |
2436 | return true; | 2436 | return true; |
2437 | } | 2437 | } |
2438 | |||
2439 | public void SleepScript(UUID itemID, int delay) | ||
2440 | { | ||
2441 | IScriptInstance instance = GetInstance(itemID); | ||
2442 | if (instance == null) | ||
2443 | return; | ||
2444 | |||
2445 | instance.ExecutionTimer.Stop(); | ||
2446 | try | ||
2447 | { | ||
2448 | if (instance.CoopWaitHandle != null) | ||
2449 | { | ||
2450 | if (instance.CoopWaitHandle.WaitOne(delay)) | ||
2451 | throw new ScriptCoopStopException(); | ||
2452 | } | ||
2453 | else | ||
2454 | { | ||
2455 | Thread.Sleep(delay); | ||
2456 | } | ||
2457 | } | ||
2458 | finally | ||
2459 | { | ||
2460 | instance.ExecutionTimer.Start(); | ||
2461 | } | ||
2462 | } | ||
2438 | } | 2463 | } |
2439 | } | 2464 | } |
diff --git a/OpenSim/Tests/Common/Mock/MockScriptEngine.cs b/OpenSim/Tests/Common/Mock/MockScriptEngine.cs index 57be1da..d7a144c 100644 --- a/OpenSim/Tests/Common/Mock/MockScriptEngine.cs +++ b/OpenSim/Tests/Common/Mock/MockScriptEngine.cs | |||
@@ -264,5 +264,9 @@ namespace OpenSim.Tests.Common | |||
264 | { | 264 | { |
265 | PostedEvents.Clear(); | 265 | PostedEvents.Clear(); |
266 | } | 266 | } |
267 | |||
268 | public void SleepScript(UUID itemID, int delay) | ||
269 | { | ||
270 | } | ||
267 | } | 271 | } |
268 | } | 272 | } |