Changeset 16622 for trunk/HeuristicLab.Clients.Hive.Slave/3.3/Core.cs
- Timestamp:
- 02/27/19 12:44:11 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/HeuristicLab.Clients.Hive.Slave/3.3/Core.cs
r16565 r16622 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.