aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDiva Canto2013-07-18 13:30:04 -0700
committerDiva Canto2013-07-18 13:30:04 -0700
commitb5062ae7ee4067158f255a0d62fb87b8eaf9d1d6 (patch)
tree36bb39138d07aa2082affcda77414024f931ebf5
parenttry Hacking in an AutoResetEvent to control the outgoing UDP loop instead of ... (diff)
downloadopensim-SC_OLD-b5062ae7ee4067158f255a0d62fb87b8eaf9d1d6.zip
opensim-SC_OLD-b5062ae7ee4067158f255a0d62fb87b8eaf9d1d6.tar.gz
opensim-SC_OLD-b5062ae7ee4067158f255a0d62fb87b8eaf9d1d6.tar.bz2
opensim-SC_OLD-b5062ae7ee4067158f255a0d62fb87b8eaf9d1d6.tar.xz
Changed the timoeut of EQ 502s (no events) to 50 secs. The viewer post requests timeout in 60 secs.
There's plenty of room for improvement in handling the EQs. Some other time...
-rw-r--r--OpenSim/Framework/Servers/HttpServer/PollServiceRequestManager.cs2
-rw-r--r--OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs11
2 files changed, 10 insertions, 3 deletions
diff --git a/OpenSim/Framework/Servers/HttpServer/PollServiceRequestManager.cs b/OpenSim/Framework/Servers/HttpServer/PollServiceRequestManager.cs
index c50df5a..e811079 100644
--- a/OpenSim/Framework/Servers/HttpServer/PollServiceRequestManager.cs
+++ b/OpenSim/Framework/Servers/HttpServer/PollServiceRequestManager.cs
@@ -118,7 +118,7 @@ namespace OpenSim.Framework.Servers.HttpServer
118 // The only purpose of this thread is to check the EQs for events. 118 // The only purpose of this thread is to check the EQs for events.
119 // If there are events, that thread will be placed in the "ready-to-serve" queue, m_requests. 119 // If there are events, that thread will be placed in the "ready-to-serve" queue, m_requests.
120 // If there are no events, that thread will be back to its "waiting" queue, m_longPollRequests. 120 // If there are no events, that thread will be back to its "waiting" queue, m_longPollRequests.
121 // All other types of tasks (Inventory handlers) don't have the long-poll nature, 121 // All other types of tasks (Inventory handlers, http-in, etc) don't have the long-poll nature,
122 // so if they aren't ready to be served by a worker thread (no events), they are placed 122 // so if they aren't ready to be served by a worker thread (no events), they are placed
123 // directly back in the "ready-to-serve" queue by the worker thread. 123 // directly back in the "ready-to-serve" queue by the worker thread.
124 while (m_running) 124 while (m_running)
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs
index f0445ff..c5e28ad 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/EventQueue/EventQueueGetModule.cs
@@ -65,6 +65,13 @@ namespace OpenSim.Region.ClientStack.Linden
65 /// </value> 65 /// </value>
66 public int DebugLevel { get; set; } 66 public int DebugLevel { get; set; }
67 67
68 // Viewer post requests timeout in 60 secs
69 // https://bitbucket.org/lindenlab/viewer-release/src/421c20423df93d650cc305dc115922bb30040999/indra/llmessage/llhttpclient.cpp?at=default#cl-44
70 //
71 private const int VIEWER_TIMEOUT = 60 * 1000;
72 // Just to be safe, we work on a 10 sec shorter cycle
73 private const int SERVER_EQ_TIME_NO_EVENTS = VIEWER_TIMEOUT - (10 * 1000);
74
68 protected Scene m_scene; 75 protected Scene m_scene;
69 76
70 private Dictionary<UUID, int> m_ids = new Dictionary<UUID, int>(); 77 private Dictionary<UUID, int> m_ids = new Dictionary<UUID, int>();
@@ -363,8 +370,8 @@ namespace OpenSim.Region.ClientStack.Linden
363 } 370 }
364 371
365 caps.RegisterPollHandler( 372 caps.RegisterPollHandler(
366 "EventQueueGet", 373 "EventQueueGet",
367 new PollServiceEventArgs(null, GenerateEqgCapPath(eventQueueGetUUID), HasEvents, GetEvents, NoEvents, agentID, 40000)); 374 new PollServiceEventArgs(null, GenerateEqgCapPath(eventQueueGetUUID), HasEvents, GetEvents, NoEvents, agentID, SERVER_EQ_TIME_NO_EVENTS));
368 375
369 Random rnd = new Random(Environment.TickCount); 376 Random rnd = new Random(Environment.TickCount);
370 lock (m_ids) 377 lock (m_ids)