| 131 | |
| 132 | Boost.Async is a C++ library to allow the calling of functions and functors in an asynchronous manner, thereby making it easier to improve the level of concurrency and parallelism in your applications. It provides: |
| 133 | |
| 134 | * An asynchronous execution framework working with AsynchronousExecutor and AsynchronousCompletionToken. It includes some generic functions and several AsynchronousExecutor and AsynchronousCompletionToken: |
| 135 | * fork and fork_all to execute asynchronously functions |
| 136 | * fork_after: request an AsynchronousExecutor to execute a function asynchronously once each one of AsynchronousCompletionToken in the dependency tuple parameter are ready. It is similar to the async_with_dependencies proposed Peter Dimov. |
| 137 | * generic get, join, ... free functions to synchroyze on an AsynchronousCompletionToken |
| 138 | * generic get_all, join_all, ... free functions to synchroyze on multiple AsynchronousCompletionToken |
| 139 | * generic wait_for_all, wait_for_any to execute asynchronously functions and wait for the completion of all or any of them. |
| 140 | * Some AsynchronousExecutor and AsynchronousCompletionToken models |
| 141 | * inmediate executors: executes synchronously a function on the current thread. Often used for test purposes |
| 142 | * basic_threader: can be seen as a thread factory executing asynchronously a function on the returned thread. |
| 143 | * launchers: Lanchers can be seen as a future factory executing asynchronously a function on a hidden thread. |
| 144 | * threader/joiner: A Threader runs a unary function in its own thread. A Threader can be seen as a Joiner factory executing asynchronously a function on a thread encapsulated on the returned Joiner. The joiner is used to synchronize with and pick up the result from a function or to manage the encapsulated thread. |
| 145 | * tp::pool and tp::task customization as an AsynchronousExecutor and an AsynchronousCompletionToken respectively. tp::pool can be seen as a tp::task factory executing asynchronously a function on a pool of threads. |
| 146 | * a generic asynchronous_executor_decorator which allows to decorate the function to be evaluated asynchronously. |
| 147 | |