aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ClientStack')
-rw-r--r--OpenSim/Region/ClientStack/Linden/Caps/GetMeshModule.cs13
-rw-r--r--OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs15
-rw-r--r--OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs2
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);