Пример #1
0
 public void ThreadDieing(IThread heartbeat)
 {
     m_log.Warn("[SceneHeartbeatTracker]: " + heartbeat.type + " has been found dead for " + m_scene.RegionInfo.RegionName + ".");
     if(AllHeartbeats.Contains(heartbeat))
         AllHeartbeats.Remove(heartbeat);
 }
Пример #2
0
 private void CheckThread(IThread hb)
 {
     if (hb.LastUpdate == new DateTime())
         return;
     TimeSpan ts = DateTime.UtcNow - hb.LastUpdate;
     if (ts.Seconds > 5)
     {
         m_log.Warn("[SceneHeartbeatTracker]: " + hb.type + " has been found dead, attempting to revive...");
         //Time to start a new one
         AllHeartbeats.Remove(hb);
         hb.Restart();
         
     }
 }
Пример #3
0
 public void AddSceneHeartbeat(IThread heartbeat, out System.Threading.Thread thread)
 {
     //m_log.Warn("[SceneHeartbeatTracker]: " + heartbeat.type + " has been started");
     thread = new System.Threading.Thread(heartbeat.Start);
     thread.Name = "SceneHeartbeat";
     thread.Priority = System.Threading.ThreadPriority.Normal;
     thread.IsBackground = true;
     thread.Start();
     heartbeat.ThreadIsClosing += ThreadDieing;
     AllHeartbeats.Add(heartbeat);
 }
Пример #4
0
 public void FireThreadClosing(IThread sh)
 {
     if (ThreadIsClosing != null)
         ThreadIsClosing(sh);
 }