diff options
Diffstat (limited to 'OpenSim/Region')
4 files changed, 12 insertions, 9 deletions
diff --git a/OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs b/OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs index 35ae44c..b9a217b 100644 --- a/OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs +++ b/OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs | |||
@@ -51,7 +51,7 @@ namespace OpenSim.Region.ScriptEngine.Interfaces | |||
51 | public interface IScriptWorkItem | 51 | public interface IScriptWorkItem |
52 | { | 52 | { |
53 | bool Cancel(); | 53 | bool Cancel(); |
54 | void Abort(); | 54 | bool Abort(); |
55 | 55 | ||
56 | /// <summary> | 56 | /// <summary> |
57 | /// Wait for the work item to complete. | 57 | /// Wait for the work item to complete. |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs index 1e6db43..f9d3afc 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs | |||
@@ -564,9 +564,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance | |||
564 | 564 | ||
565 | public bool Stop(int timeout) | 565 | public bool Stop(int timeout) |
566 | { | 566 | { |
567 | // m_log.DebugFormat( | 567 | if (DebugLevel >= 1) |
568 | // "[SCRIPT INSTANCE]: Stopping script {0} {1} in {2} {3} with timeout {4} {5} {6}", | 568 | m_log.DebugFormat( |
569 | // ScriptName, ItemID, PrimName, ObjectID, timeout, m_InSelfDelete, DateTime.Now.Ticks); | 569 | "[SCRIPT INSTANCE]: Stopping script {0} {1} in {2} {3} with timeout {4} {5} {6}", |
570 | ScriptName, ItemID, PrimName, ObjectID, timeout, m_InSelfDelete, DateTime.Now.Ticks); | ||
570 | 571 | ||
571 | IScriptWorkItem workItem; | 572 | IScriptWorkItem workItem; |
572 | 573 | ||
@@ -627,6 +628,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance | |||
627 | } | 628 | } |
628 | } | 629 | } |
629 | 630 | ||
631 | Console.WriteLine("Here9"); | ||
632 | |||
630 | lock (EventQueue) | 633 | lock (EventQueue) |
631 | { | 634 | { |
632 | workItem = m_CurrentWorkItem; | 635 | workItem = m_CurrentWorkItem; |
diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs index 0d9babb..5804aa8 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs | |||
@@ -483,7 +483,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
483 | /// <param name="instance"></param> | 483 | /// <param name="instance"></param> |
484 | /// <param name="keySelector">Basis on which to sort output. Can be null if no sort needs to take place</param> | 484 | /// <param name="keySelector">Basis on which to sort output. Can be null if no sort needs to take place</param> |
485 | private void HandleScriptsAction<TKey>( | 485 | private void HandleScriptsAction<TKey>( |
486 | string[] cmdparams, Action<IScriptInstance> action, Func<IScriptInstance, TKey> keySelector) | 486 | string[] cmdparams, Action<IScriptInstance> action, System.Func<IScriptInstance, TKey> keySelector) |
487 | { | 487 | { |
488 | if (!(MainConsole.Instance.ConsoleScene == null || MainConsole.Instance.ConsoleScene == m_Scene)) | 488 | if (!(MainConsole.Instance.ConsoleScene == null || MainConsole.Instance.ConsoleScene == m_Scene)) |
489 | return; | 489 | return; |
@@ -1517,7 +1517,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
1517 | startInfo.MaxWorkerThreads = maxThreads; | 1517 | startInfo.MaxWorkerThreads = maxThreads; |
1518 | startInfo.MinWorkerThreads = minThreads; | 1518 | startInfo.MinWorkerThreads = minThreads; |
1519 | startInfo.ThreadPriority = threadPriority;; | 1519 | startInfo.ThreadPriority = threadPriority;; |
1520 | startInfo.StackSize = stackSize; | 1520 | startInfo.MaxStackSize = stackSize; |
1521 | startInfo.StartSuspended = true; | 1521 | startInfo.StartSuspended = true; |
1522 | 1522 | ||
1523 | m_ThreadPool = new SmartThreadPool(startInfo); | 1523 | m_ThreadPool = new SmartThreadPool(startInfo); |
diff --git a/OpenSim/Region/ScriptEngine/XEngine/XWorkItem.cs b/OpenSim/Region/ScriptEngine/XEngine/XWorkItem.cs index 8dd7677..9d9dee1 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/XWorkItem.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/XWorkItem.cs | |||
@@ -52,16 +52,16 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
52 | return wr.Cancel(); | 52 | return wr.Cancel(); |
53 | } | 53 | } |
54 | 54 | ||
55 | public void Abort() | 55 | public bool Abort() |
56 | { | 56 | { |
57 | wr.Abort(); | 57 | return wr.Cancel(true); |
58 | } | 58 | } |
59 | 59 | ||
60 | public bool Wait(int t) | 60 | public bool Wait(int t) |
61 | { | 61 | { |
62 | // We use the integer version of WaitAll because the current version of SmartThreadPool has a bug with the | 62 | // We use the integer version of WaitAll because the current version of SmartThreadPool has a bug with the |
63 | // TimeSpan version. The number of milliseconds in TimeSpan is an int64 so when STP casts it down to an | 63 | // TimeSpan version. The number of milliseconds in TimeSpan is an int64 so when STP casts it down to an |
64 | // int (32-bit) we can end up with bad values. This occurs on Windows though curious not on Mono 2.10.8 | 64 | // int (32-bit) we can end up with bad values. This occurs on Windows though curiously not on Mono 2.10.8 |
65 | // (or very likely other versions of Mono at least up until 3.0.3). | 65 | // (or very likely other versions of Mono at least up until 3.0.3). |
66 | return SmartThreadPool.WaitAll(new IWorkItemResult[] {wr}, t, false); | 66 | return SmartThreadPool.WaitAll(new IWorkItemResult[] {wr}, t, false); |
67 | } | 67 | } |