opensim – Diff between revs 3 and 4
?pathlinks?
Rev 3 | Rev 4 | |||
---|---|---|---|---|
Line 49... | Line 49... | |||
49 | { |
49 | { |
|
50 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
50 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
|
Line 51... | Line 51... | |||
51 | |
51 | |
|
52 | private static Thread cmdHandlerThread; |
52 | private static Thread cmdHandlerThread; |
|
53 | private static int cmdHandlerThreadCycleSleepms; |
53 | private static int cmdHandlerThreadCycleSleepms; |
|
Line 54... | Line 54... | |||
54 | private static readonly AutoResetEvent cmdHandlerResetEvent = new AutoResetEvent(false); |
54 | private static readonly System.Timers.Timer cmdEventTimer = new System.Timers.Timer(); |
|
55 | |
55 | |
|
56 | /// <summary> |
56 | /// <summary> |
|
57 | /// Lock for reading/writing static components of AsyncCommandManager. |
57 | /// Lock for reading/writing static components of AsyncCommandManager. |
|
Line 177... | Line 177... | |||
177 | } |
177 | } |
|
178 | } |
178 | } |
|
Line 179... | Line 179... | |||
179 | |
179 | |
|
180 | private static void StartThread() |
180 | private static void StartThread() |
|
- | 181 | { |
||
181 | { |
182 | if (!cmdEventTimer.Enabled.Equals(false)) return; |
|
- | 183 | // Start the timer event |
||
182 | if (cmdHandlerThread == null) |
184 | cmdEventTimer.Elapsed += (sender, args) => |
|
- | 185 | { |
||
- | 186 | try |
||
183 | { |
187 | { |
|
184 | // Start the thread that will be doing the work |
188 | DoOneCmdHandlerPass(); |
|
185 | cmdHandlerThread |
189 | } |
|
- | 190 | catch (Exception e) |
||
186 | = Watchdog.StartThread( |
191 | { |
|
- | 192 | m_log.Error("[ASYNC COMMAND MANAGER]: Exception in command handler pass: ", e); |
||
187 | CmdHandlerThreadLoop, "AsyncLSLCmdHandlerThread", ThreadPriority.Normal, true, true); |
193 | } |
|
- | 194 | }; |
||
- | 195 | cmdEventTimer.Interval = cmdHandlerThreadCycleSleepms; |
||
188 | } |
196 | cmdEventTimer.Enabled = true; |
|
Line 189... | Line 197... | |||
189 | } |
197 | } |
|
190 | |
198 | |
|
191 | private void ReadConfig() |
199 | private void ReadConfig() |
|
192 | { |
200 | { |
|
193 | // cmdHandlerThreadCycleSleepms = m_ScriptEngine.Config.GetInt("AsyncLLCommandLoopms", 100); |
201 | // cmdHandlerThreadCycleSleepms = m_ScriptEngine.Config.GetInt("AsyncLLCommandLoopms", 100); |
|
194 | // TODO: Make this sane again |
202 | // TODO: Make this sane again |
|
Line 195... | Line 203... | |||
195 | cmdHandlerThreadCycleSleepms = 100; |
203 | cmdHandlerThreadCycleSleepms = 10; |
|
196 | } |
204 | } |
|
197 | |
205 | |
|
Line 221... | Line 229... | |||
221 | { |
229 | { |
|
222 | while (true) |
230 | while (true) |
|
223 | { |
231 | { |
|
224 | try |
232 | try |
|
225 | { |
233 | { |
|
226 | //Thread.Sleep(cmdHandlerThreadCycleSleepms); |
234 | Thread.Sleep(cmdHandlerThreadCycleSleepms); |
|
Line 227... | Line 235... | |||
227 | |
235 | |
|
228 | DoOneCmdHandlerPass(); |
- | ||
- | 236 | DoOneCmdHandlerPass(); |
||
229 | cmdHandlerResetEvent.WaitOne(cmdHandlerThreadCycleSleepms, false); |
237 | |
|
230 | Watchdog.UpdateThread(); |
238 | Watchdog.UpdateThread(); |
|
231 | } |
239 | } |
|
232 | catch (Exception e) |
240 | catch (Exception e) |
|
233 | { |
241 | { |
|
Line 259... | Line 267... | |||
259 | |
267 | |
|
260 | // Check dataserver |
268 | // Check dataserver |
|
261 | m_Dataserver[s].ExpireRequests(); |
269 | m_Dataserver[s].ExpireRequests(); |
|
262 | } |
270 | } |
|
263 | } |
- | ||
264 | cmdHandlerResetEvent.Set(); |
271 | } |
|
Line 265... | Line 272... | |||
265 | } |
272 | } |
|
266 | |
273 | |
|
267 | /// <summary> |
274 | /// <summary> |
|
Line 439... | Line 446... | |||
439 | } |
446 | } |
|
440 | } |
447 | } |
|
441 | } |
448 | } |
|
442 | } |
449 | } |
|
443 | } |
450 | } |
|
444 | } |
451 | } |
|
445 | |
452 | |