Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
09/21/15 16:37:53 (9 years ago)
Author:
ascheibe
Message:

#2468 merged r12920 and r12960 into stable

Location:
stable
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • stable

  • stable/HeuristicLab.Clients.Hive.Slave/3.3/Executor.cs

    r12009 r12964  
    185185    #endregion
    186186
     187    public Tuple<TaskData, DateTime> GetTaskDataSnapshot() {
     188      if (taskDataInvalid) return null;
     189
     190      Tuple<TaskData, DateTime> snapshot = null;
     191      if (task == null) {
     192        if (CurrentException == null) {
     193          CurrentException = new Exception("Task with id " + this.TaskId + " is null, sending empty task");
     194        }
     195      } else {
     196        var taskData = new TaskData();
     197
     198        var pausedTrigger = new EventWaitHandle(false, EventResetMode.ManualReset);
     199        EventHandler pausedHandler = null;
     200        pausedHandler = (s, e) => {
     201          task.TaskPaused -= pausedHandler;
     202          task.TaskPaused += Task_TaskPaused;
     203          pausedTrigger.Set();
     204        };
     205
     206        task.TaskPaused -= Task_TaskPaused;
     207        task.TaskPaused += pausedHandler;
     208        task.Pause();
     209        pausedTrigger.WaitOne();
     210
     211        taskData.Data = PersistenceUtil.Serialize(task);
     212        var timestamp = DateTime.Now;
     213
     214        EventHandler startedHandler = null;
     215        startedHandler = (s, e) => {
     216          task.TaskStarted -= startedHandler;
     217          task.TaskStarted += Task_TaskStarted;
     218        };
     219
     220        task.TaskStarted -= Task_TaskStarted;
     221        task.TaskStarted += startedHandler;
     222        task.Start();
     223
     224        taskData.TaskId = TaskId;
     225        snapshot = Tuple.Create(taskData, timestamp);
     226      }
     227
     228      return snapshot;
     229    }
     230
    187231    public TaskData GetTaskData() {
    188232      if (taskDataInvalid) return null;
Note: See TracChangeset for help on using the changeset viewer.