protected override void Dispatch(Org.Apache.Hadoop.Yarn.Event.Event @event) { if (@event is TaskAttemptEvent) { TaskAttemptEvent killEvent = (TaskAttemptEvent)@event; if (killEvent.GetType() == TaskAttemptEventType.TaKill) { TaskAttemptId taID = killEvent.GetTaskAttemptID(); if (taID.GetTaskId().GetTaskType() == TaskType.Reduce && taID.GetTaskId().GetId() == 0 && taID.GetId() == 0) { base.Dispatch(new TaskAttemptEvent(taID, TaskAttemptEventType.TaDone)); base.Dispatch(new TaskAttemptEvent(taID, TaskAttemptEventType.TaContainerCleaned) ); base.Dispatch(new TaskTAttemptEvent(taID, TaskEventType.TAttemptSucceeded)); this.cachedKillEvent = killEvent; return; } } } else { if (@event is TaskEvent) { TaskEvent taskEvent = (TaskEvent)@event; if (taskEvent.GetType() == TaskEventType.TAttemptSucceeded && this.cachedKillEvent != null) { base.Dispatch(this.cachedKillEvent); return; } } } base.Dispatch(@event); }
protected override void Dispatch(Org.Apache.Hadoop.Yarn.Event.Event @event) { if (@event is TaskAttemptEvent) { TaskAttemptEvent attemptEvent = (TaskAttemptEvent)@event; TaskAttemptId attemptID = ((TaskAttemptEvent)@event).GetTaskAttemptID(); if (attemptEvent.GetType() == this.attemptEventTypeToWait && attemptID.GetTaskId( ).GetId() == 0 && attemptID.GetId() == 0) { try { latch.Await(); } catch (Exception e) { Sharpen.Runtime.PrintStackTrace(e); } } } base.Dispatch(@event); }