diff options
Diffstat (limited to 'OpenSim/Region/ClientStack')
3 files changed, 18 insertions, 12 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/GetMeshModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/GetMeshModule.cs index f733972..27db72c 100644 --- a/OpenSim/Region/ClientStack/Linden/Caps/GetMeshModule.cs +++ b/OpenSim/Region/ClientStack/Linden/Caps/GetMeshModule.cs | |||
@@ -88,8 +88,8 @@ namespace OpenSim.Region.ClientStack.Linden | |||
88 | private Dictionary<UUID, string> m_capsDict = new Dictionary<UUID, string>(); | 88 | private Dictionary<UUID, string> m_capsDict = new Dictionary<UUID, string>(); |
89 | private static Thread[] m_workerThreads = null; | 89 | private static Thread[] m_workerThreads = null; |
90 | private static int m_NumberScenes = 0; | 90 | private static int m_NumberScenes = 0; |
91 | private static OpenMetaverse.BlockingQueue<aPollRequest> m_queue = | 91 | private static OpenSim.Framework.BlockingQueue<aPollRequest> m_queue = |
92 | new OpenMetaverse.BlockingQueue<aPollRequest>(); | 92 | new OpenSim.Framework.BlockingQueue<aPollRequest>(); |
93 | 93 | ||
94 | private Dictionary<UUID, PollServiceMeshEventArgs> m_pollservices = new Dictionary<UUID, PollServiceMeshEventArgs>(); | 94 | private Dictionary<UUID, PollServiceMeshEventArgs> m_pollservices = new Dictionary<UUID, PollServiceMeshEventArgs>(); |
95 | 95 | ||
@@ -170,7 +170,7 @@ namespace OpenSim.Region.ClientStack.Linden | |||
170 | m_workerThreads[i] = WorkManager.StartThread(DoMeshRequests, | 170 | m_workerThreads[i] = WorkManager.StartThread(DoMeshRequests, |
171 | String.Format("GetMeshWorker{0}", i), | 171 | String.Format("GetMeshWorker{0}", i), |
172 | ThreadPriority.Normal, | 172 | ThreadPriority.Normal, |
173 | false, | 173 | true, |
174 | false, | 174 | false, |
175 | null, | 175 | null, |
176 | int.MaxValue); | 176 | int.MaxValue); |
@@ -203,9 +203,12 @@ namespace OpenSim.Region.ClientStack.Linden | |||
203 | { | 203 | { |
204 | while(true) | 204 | while(true) |
205 | { | 205 | { |
206 | aPollRequest poolreq = m_queue.Dequeue(); | 206 | aPollRequest poolreq = m_queue.Dequeue(1000); |
207 | if(m_NumberScenes <= 0) | ||
208 | return; | ||
207 | Watchdog.UpdateThread(); | 209 | Watchdog.UpdateThread(); |
208 | poolreq.thepoll.Process(poolreq); | 210 | if(poolreq.reqID != UUID.Zero) |
211 | poolreq.thepoll.Process(poolreq); | ||
209 | } | 212 | } |
210 | } | 213 | } |
211 | 214 | ||
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs index c9f3b7e..d6b4873 100644 --- a/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs +++ b/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs | |||
@@ -77,8 +77,8 @@ namespace OpenSim.Region.ClientStack.Linden | |||
77 | private Dictionary<UUID, string> m_capsDict = new Dictionary<UUID, string>(); | 77 | private Dictionary<UUID, string> m_capsDict = new Dictionary<UUID, string>(); |
78 | private static Thread[] m_workerThreads = null; | 78 | private static Thread[] m_workerThreads = null; |
79 | private static int m_NumberScenes = 0; | 79 | private static int m_NumberScenes = 0; |
80 | private static OpenMetaverse.BlockingQueue<aPollRequest> m_queue = | 80 | private static OpenSim.Framework.BlockingQueue<aPollRequest> m_queue = |
81 | new OpenMetaverse.BlockingQueue<aPollRequest>(); | 81 | new OpenSim.Framework.BlockingQueue<aPollRequest>(); |
82 | 82 | ||
83 | private Dictionary<UUID,PollServiceTextureEventArgs> m_pollservices = new Dictionary<UUID,PollServiceTextureEventArgs>(); | 83 | private Dictionary<UUID,PollServiceTextureEventArgs> m_pollservices = new Dictionary<UUID,PollServiceTextureEventArgs>(); |
84 | 84 | ||
@@ -139,7 +139,7 @@ namespace OpenSim.Region.ClientStack.Linden | |||
139 | m_workerThreads[i] = WorkManager.StartThread(DoTextureRequests, | 139 | m_workerThreads[i] = WorkManager.StartThread(DoTextureRequests, |
140 | String.Format("GetTextureWorker{0}", i), | 140 | String.Format("GetTextureWorker{0}", i), |
141 | ThreadPriority.Normal, | 141 | ThreadPriority.Normal, |
142 | false, | 142 | true, |
143 | false, | 143 | false, |
144 | null, | 144 | null, |
145 | int.MaxValue); | 145 | int.MaxValue); |
@@ -274,7 +274,7 @@ namespace OpenSim.Region.ClientStack.Linden | |||
274 | { | 274 | { |
275 | if (responses.Count > 0) | 275 | if (responses.Count > 0) |
276 | { | 276 | { |
277 | if (m_queue.Count >= 4) | 277 | if (m_queue.Count() >= 4) |
278 | { | 278 | { |
279 | // Never allow more than 4 fetches to wait | 279 | // Never allow more than 4 fetches to wait |
280 | reqinfo.send503 = true; | 280 | reqinfo.send503 = true; |
@@ -445,9 +445,12 @@ namespace OpenSim.Region.ClientStack.Linden | |||
445 | { | 445 | { |
446 | while (true) | 446 | while (true) |
447 | { | 447 | { |
448 | aPollRequest poolreq = m_queue.Dequeue(); | 448 | aPollRequest poolreq = m_queue.Dequeue(2000); |
449 | if(m_NumberScenes <= 0) | ||
450 | return; | ||
449 | Watchdog.UpdateThread(); | 451 | Watchdog.UpdateThread(); |
450 | poolreq.thepoll.Process(poolreq); | 452 | if(poolreq.reqID != UUID.Zero) |
453 | poolreq.thepoll.Process(poolreq); | ||
451 | } | 454 | } |
452 | } | 455 | } |
453 | 456 | ||
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs index 1ea0454..422c354 100644 --- a/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs +++ b/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs | |||
@@ -206,7 +206,7 @@ namespace OpenSim.Region.ClientStack.Linden | |||
206 | m_workerThreads[i] = WorkManager.StartThread(DoInventoryRequests, | 206 | m_workerThreads[i] = WorkManager.StartThread(DoInventoryRequests, |
207 | String.Format("InventoryWorkerThread{0}", i), | 207 | String.Format("InventoryWorkerThread{0}", i), |
208 | ThreadPriority.Normal, | 208 | ThreadPriority.Normal, |
209 | false, | 209 | true, |
210 | true, | 210 | true, |
211 | null, | 211 | null, |
212 | int.MaxValue); | 212 | int.MaxValue); |