summaryrefslogtreecommitdiffstats
path: root/async/src/future.cpp
Commit message (Collapse)AuthorAge
* KAsync has moved to it's own kasync.git repositoryDan Vrátil2015-05-18
|
* Async: rename Async namespace to KAsyncDan Vrátil2015-05-15
|
* Async: implement progress reporting through futureDan Vrátil2015-04-04
| | | | | | | | | | This is a simplified progress reporting, since it does not report progress of ther overcall Job chain, but only of individual tasks, which makes it only really useful on one-task Jobs. TODO: propagate subjob progress to the Future user gets copy of TODO: compound progress reporting (be able to report a progress of the overall Job chain)
* Async: move as much Future code as possible from public header to .cppDan Vrátil2015-04-04
|
* Async: support (re-)executing single Job multiple timesDan Vrátil2015-04-01
| | | | | | | | | | | | | | | | | | | Storing Future and current Job progress directly in Executors means that we cannot re-execute finished job, or even execute the same Job multiple times in parallel. To do so, we need to make Executors stateless and track the state elsewhere. This change does that by moving the execution state from Executor to Execution class. Executors now only describe the tasks to execute, while Execution holds the current state of execution. New Execution is created every time Job::exec() is called. Execution holds reference to it's result (Future) and Executor which created the Execution. This ensures that Executor is not deleted when Job (which owns Executors) goes out of scope while the execution is still running. At the same time Future holds reference to relevant Execution, so that the Execution is deleted when all copies of Future referring result from the respective Execution are deleted.
* Fixed Async::Future.Christian Mollekopf2015-01-19
| | | | | The future is copied an the finished boolean has to be in the shared part, otherwise the original copy never receives the updated value.
* Async: relicense from GPLv2 to LGPLv2+Dan Vrátil2014-12-18
|
* Async: bring back synchronous Future::waitForFinished()Dan Vrátil2014-12-14
|
* Async: make the processing truly asynchronousDan Vrátil2014-12-14
Now calling exec() starts the first job and returns a pending Future immediately. Caller can then use Async::FutureWatcher to wait for the future to become finished, i.e. for all jobs to finish execution.