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