diff options
Diffstat (limited to 'OpenSim/Region/CoreModules/Framework/EntityTransfer/HGIncomingSceneObjectEngine.cs')
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/EntityTransfer/HGIncomingSceneObjectEngine.cs | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGIncomingSceneObjectEngine.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGIncomingSceneObjectEngine.cs index 718db31..ce6cdc9 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGIncomingSceneObjectEngine.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGIncomingSceneObjectEngine.cs | |||
@@ -38,13 +38,15 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
38 | { | 38 | { |
39 | public class Job | 39 | public class Job |
40 | { | 40 | { |
41 | public string Name; | 41 | public string Name { get; private set; } |
42 | public WaitCallback Callback; | 42 | public string CommonId { get; private set; } |
43 | public object O; | 43 | public WaitCallback Callback { get; private set; } |
44 | public object O { get; private set; } | ||
44 | 45 | ||
45 | public Job(string name, WaitCallback callback, object o) | 46 | public Job(string name, string commonId, WaitCallback callback, object o) |
46 | { | 47 | { |
47 | Name = name; | 48 | Name = name; |
49 | CommonId = commonId; | ||
48 | Callback = callback; | 50 | Callback = callback; |
49 | O = o; | 51 | O = o; |
50 | } | 52 | } |
@@ -90,6 +92,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
90 | 92 | ||
91 | public HGIncomingSceneObjectEngine(string name) | 93 | public HGIncomingSceneObjectEngine(string name) |
92 | { | 94 | { |
95 | // LogLevel = 1; | ||
93 | Name = name; | 96 | Name = name; |
94 | RequestProcessTimeoutOnStop = 5000; | 97 | RequestProcessTimeoutOnStop = 5000; |
95 | 98 | ||
@@ -192,10 +195,24 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
192 | } | 195 | } |
193 | } | 196 | } |
194 | 197 | ||
195 | public bool QueueRequest(string name, WaitCallback req, object o) | 198 | public Job RemoveNextRequest() |
199 | { | ||
200 | Job nextRequest; | ||
201 | m_requestQueue.TryTake(out nextRequest); | ||
202 | |||
203 | return nextRequest; | ||
204 | } | ||
205 | |||
206 | public bool QueueRequest(string name, string commonId, WaitCallback req, object o) | ||
207 | { | ||
208 | return QueueRequest(new Job(name, commonId, req, o)); | ||
209 | } | ||
210 | |||
211 | public bool QueueRequest(Job job) | ||
196 | { | 212 | { |
197 | if (LogLevel >= 1) | 213 | if (LogLevel >= 1) |
198 | m_log.DebugFormat("[HG INCOMING SCENE OBJECT ENGINE]: Queued job {0}", name); | 214 | m_log.DebugFormat( |
215 | "[HG INCOMING SCENE OBJECT ENGINE]: Queued job {0}, common ID {1}", job.Name, job.CommonId); | ||
199 | 216 | ||
200 | if (m_requestQueue.Count < m_requestQueue.BoundedCapacity) | 217 | if (m_requestQueue.Count < m_requestQueue.BoundedCapacity) |
201 | { | 218 | { |
@@ -203,7 +220,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
203 | // "[OUTGOING QUEUE REFILL ENGINE]: Adding request for categories {0} for {1} in {2}", | 220 | // "[OUTGOING QUEUE REFILL ENGINE]: Adding request for categories {0} for {1} in {2}", |
204 | // categories, client.AgentID, m_udpServer.Scene.Name); | 221 | // categories, client.AgentID, m_udpServer.Scene.Name); |
205 | 222 | ||
206 | m_requestQueue.Add(new Job(name, req, o)); | 223 | m_requestQueue.Add(job); |
207 | 224 | ||
208 | if (!m_warnOverMaxQueue) | 225 | if (!m_warnOverMaxQueue) |
209 | m_warnOverMaxQueue = true; | 226 | m_warnOverMaxQueue = true; |