Microsoft-CISL/REEF — pull request #922 by markusweimer (2014-08-06 01:11:25+00:00)
Title: Improved Local Runtime

This PR contains a lot of changes which happened as part of adding more events to the local runtime. It now generates events when a process exits, therey mimicking the YARN runtime closer:

* Moved `RunnableProcess` to its own package and added event handling
* Used that to inform the Driver of evaluator state changes such as process exit. For exit values different from 0, a failure is generated
* Added a test to check whether untimely calls to `System.exit` in a Task create a `FailedEvaluator` in the Driver
* Added new interface `EvaluatorRepresenter` and moved the old `EvaluatorManager` to be an implementation thereof
* Added a pool of closed Evaluators to `Evaluators` (see #763 )

**New Driver Idle detection:**
* Driver idle is determined in an event driven fashion: The clock, resourcemanager or Evaluators classes can initiate idle check and if all agree, the Driver is shut down

**Logging updates:**
* Logging updates to `EvaluatorManager`
* Log updates to `DriverIdleHandler`
* Log update to `EvaluatorContext`
* Added a final log entry in `Launcher`

**Minor tweaks:**
* Fixed the job name of `HelloREEFHttp`
* Removed some dead code in the close_eval test
* Added a link to the Wake issue for the wait() calls in the Evaluator.
* Fixed the name of the Test in `EvaluatorFailureTest`
* Fixed synchronization issues in `EvaluatorFailureDuringAlarmDriver`
* Added thread naming to `DispatchingEStage`
* Tightened state checks in ContainerManager