Changeset 5721 for branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/HeartbeatManager.cs
- Timestamp:
- 03/16/11 18:05:56 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive.Slave/3.4/HeartbeatManager.cs
r5599 r5721 34 34 private Thread heartBeatThread; 35 35 private AutoResetEvent waitHandle; 36 private WcfService wcfService; 37 private bool threadStopped; 38 ReaderWriterLockSlim heartBeatThreadIsSleepingLock = new ReaderWriterLockSlim(); 36 39 37 40 public HeartbeatManager() { … … 42 45 Interval = interval; 43 46 } 44 45 private WcfService wcfService;46 47 private bool threadStopped;48 49 ReaderWriterLockSlim heartBeatThreadIsSleepingLock = new ReaderWriterLockSlim();50 47 51 48 /// <summary> … … 78 75 79 76 private void RunHeartBeatThread() { 77 bool sleepForever; 80 78 while (!threadStopped) { 79 sleepForever = false; 81 80 try { 82 81 lock (locker) { … … 88 87 89 88 Heartbeat heartBeatData = new Heartbeat { 90 SlaveId = info.Id, /*Settings.Default.Guid*/89 SlaveId = info.Id, 91 90 FreeCores = info.Cores.HasValue ? info.Cores.Value - ConfigManager.Instance.GetUsedCores() : 0, 92 91 FreeMemory = ConfigManager.GetFreeMemory(), … … 102 101 OnExceptionOccured(new Exception("Error getting response from Heartbeat")); 103 102 } else { 104 SlaveClientCom.Instance.ClientCom.LogMessage("Heartbeat Response received : ");103 SlaveClientCom.Instance.ClientCom.LogMessage("Heartbeat Response received (" + msgs.Count + "): "); 105 104 msgs.ForEach(mc => SlaveClientCom.Instance.ClientCom.LogMessage(mc.Message.ToString())); 106 105 msgs.ForEach(mc => MessageQueue.GetInstance().AddMessage(mc)); 106 //after fetching a job, we sleep until the core wakes us up!! 107 msgs.ForEach(s => { if (s.Message == MessageContainer.MessageType.CalculateJob) sleepForever = true; }); 107 108 } 108 109 } … … 113 114 OnExceptionOccured(e); 114 115 } 115 waitHandle.WaitOne(this.Interval); 116 if (sleepForever) 117 waitHandle.WaitOne(); 118 else 119 waitHandle.WaitOne(this.Interval); 116 120 } 117 121 waitHandle.Close();
Note: See TracChangeset
for help on using the changeset viewer.