diff options
Diffstat (limited to 'OpenSim/Region/ScriptEngine/DotNetEngine/EventQueueManager.cs')
-rw-r--r-- | OpenSim/Region/ScriptEngine/DotNetEngine/EventQueueManager.cs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/EventQueueManager.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/EventQueueManager.cs index 2d0d69d..e2b11cc 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/EventQueueManager.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/EventQueueManager.cs | |||
@@ -44,6 +44,28 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine | |||
44 | [Serializable] | 44 | [Serializable] |
45 | internal class EventQueueManager | 45 | internal class EventQueueManager |
46 | { | 46 | { |
47 | |||
48 | // | ||
49 | // Class is instanced in "ScriptEngine" and used by "EventManager" also instanced in "ScriptEngine". | ||
50 | // | ||
51 | // Class purpose is to queue and execute functions that are received by "EventManager": | ||
52 | // - allowing "EventManager" to release its event thread immediately, thus not interrupting server execution. | ||
53 | // - allowing us to prioritize and control execution of script functions. | ||
54 | // Class can use multiple threads for simultaneous execution. Mutexes are used for thread safety. | ||
55 | // | ||
56 | // 1. Hold an execution queue for scripts | ||
57 | // 2. Use threads to process queue, each thread executes one script function on each pass. | ||
58 | // 3. Catch any script error and process it | ||
59 | // | ||
60 | // | ||
61 | // Notes: | ||
62 | // * Current execution load balancing is optimized for 1 thread, and can cause unfair execute balancing between scripts. | ||
63 | // Not noticeable unless server is under high load. | ||
64 | // * This class contains the number of threads used for script executions. Since we are not microthreading scripts yet, | ||
65 | // increase number of threads to allow more concurrent script executions in OpenSim. | ||
66 | // | ||
67 | |||
68 | |||
47 | /// <summary> | 69 | /// <summary> |
48 | /// List of threads processing event queue | 70 | /// List of threads processing event queue |
49 | /// </summary> | 71 | /// </summary> |