Changeset 17067 for stable/HeuristicLab.Clients.Hive.Slave
- Timestamp:
- 07/04/19 15:20:26 (5 years ago)
- Location:
- stable
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
stable
- Property svn:mergeinfo changed
/trunk merged: 16622,16878
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Clients.Hive.Slave
- Property svn:mergeinfo changed
/trunk/HeuristicLab.Clients.Hive.Slave merged: 16622
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Clients.Hive.Slave/3.3/Core.cs
r15584 r17067 38 38 /// </summary> 39 39 public class Core : MarshalByRefObject { 40 private static readonly object locker = new object(); 41 40 42 private static HeartbeatManager heartbeatManager; 41 43 public static HeartbeatManager HeartbeatManager { … … 240 242 task = wcfService.GetTask(taskId); 241 243 if (task == null) throw new TaskNotFoundException(taskId); 242 if (ConfigManager.Instance.GetFreeCores() < task.CoresNeeded) throw new OutOfCoresException(); 243 if (ConfigManager.Instance.GetFreeMemory() < task.MemoryNeeded) throw new OutOfMemoryException(); 244 SlaveStatusInfo.IncrementUsedCores(task.CoresNeeded); usedCores = task.CoresNeeded; 244 lock (locker) { 245 // the amount of used cores/memory could exceed the amount of available cores/memory 246 // if HandleCalculateTask is called simultaneously from within two different tasks 247 if (ConfigManager.Instance.GetFreeCores() < task.CoresNeeded) throw new OutOfCoresException(); 248 if (ConfigManager.Instance.GetFreeMemory() < task.MemoryNeeded) throw new OutOfMemoryException(); 249 SlaveStatusInfo.IncrementUsedCores(task.CoresNeeded); usedCores = task.CoresNeeded; 250 } 245 251 TaskData taskData = wcfService.GetTaskData(taskId); 246 252 if (taskData == null) throw new TaskDataNotFoundException(taskId); … … 400 406 401 407 private void taskManager_TaskAborted(object sender, EventArgs<SlaveTask> e) { 408 var slaveTask = e.Value; 409 var task = wcfService.GetTask(slaveTask.TaskId); 410 wcfService.UpdateJobState(task.Id, TaskState.Aborted, null); 402 411 SlaveStatusInfo.DecrementUsedCores(e.Value.CoresNeeded); 403 412 }
Note: See TracChangeset
for help on using the changeset viewer.