Changes between Initial Version and Version 1 of Ticket #2828
- Timestamp:
- 08/31/17 11:27:05 (7 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ticket #2828 – Description
initial v1 8 8 For starting an `IExecutable` we offer synchronous and asynchronous methods. However, `Pause` and `Stop` are usually asynchronous too. Only `Prepare` is (currently) always synchronous. 9 9 We should either make all methods blocking or offer additional async versions such as the `Start(Async)`. 10 11 10 - `ExecutionStates` are not changed immediately after calling `Prepare/Start/Pause/Stop`:[[BR]] 12 11 For instance, after calling `StartAsync` the ExecutionState is almost certainly not `Started` but still `Prepared`. (Same for Prepare/Pause/Stop). 13 12 As discussed with mkommenda, our current `ExecutionStates` only mark "finished" states. Maybe we should also introduce "transition"-states such as "Starting" vs "Started" or "PausePending" vs "Paused". 13 - Potential NullReferenceExeption from `CancellationTokenSources`:[[BR]] 14 Calling `Stop` on some IExecutables (`BasicAlgorithm`, `Engine`) when the Executable is "almost" finished: The Executable is not Stopped yet, however the CancellationTokenSource is already disposed or set to null. 15 14 16 ==== BatchRun ==== 15 17 - Calling `Stop` while the (inner) optimizer is executing its `Prepare` method: … … 17 19 - After the (inner) optimizer finishes its `Prepare` method the `BatchRun` itself becomes `Prepared`. 18 20 - In this case the `BatchRun` starts an additional (inner) optimizer Run and then pauses and fires `OnPaused` (the BR thinks the optimizer was started externally). 21 19 22 ==== Experiment ==== 20 - ToDo23 - An `Experiment` can continue executing some optimizers after it was stopped when one optimizer is a `BatchRun` that was paused instead of stopped (see above). 21 24 22 25