Warning, /libraries/kasync/Mainpage.dox is written in an unsupported language. File is not indexed.
0001 \section purpose Purpose 0002 0003 A library to help write async code. 0004 0005 \section desc Description 0006 0007 This API is based around jobs that take lambdas to execute asynchronous tasks. 0008 Each async operation can take a continuation that can then be used to execute 0009 further async operations. That way it is possible to build async chains of 0010 operations that can be stored and executed later on. Jobs can be composed, 0011 similarly to functions. 0012 0013 Relations between the components: 0014 <ul> 0015 <li>Job: API wrapper around Executors chain. Can be destroyed while still running, 0016 because the actual execution happens in the background</li> 0017 <li>Executor: Describes task to execute. Executors form a linked list matching the 0018 order in which they will be executed. The Executor chain is destroyed when 0019 the parent Job is destroyed. However if the Job is still running it is 0020 guaranteed that the Executor chain will not be destroyed until the execution 0021 is finished.</li> 0022 <li>Execution: The running execution of the task stored in Executor. Each call to 0023 Job::exec() instantiates new Execution chain, which makes it possible for 0024 the Job to be executed multiple times (even in parallel).</li> 0025 <li>Future: Representation of the result that is being calculated</li> 0026 </ul> 0027 0028 @authors 0029 0030 @licenses 0031 @gplv2 0032 0033 // DOXYGEN_PROJECTNAME=kasync