| # Async patterns | |
| This library implements popular patterns for safe asynchronous programming in | |
| C++. It does not dictate the only way to write asynchronous code, but following | |
| the patterns will integrate with other asynchronous types such as FIDL bindings | |
| and outgoing directories nicely: | |
| - Each class is thread-unsafe and used from one async dispatcher. | |
| - Divide classes along concurrency boundaries. Use message sending and task | |
| posting to synchronize between objects in different concurrency domains. | |
| - Each asynchronous wait or task is owned by its receiver and silently canceled | |
| when the receiver is destroyed. | |
| Code that follow these patterns can minimize locks and have simple destruction | |
| logic, and still enables highly concurrent applications given many concurrency | |
| domains. They may interface with other asynchronous programming styles, such as | |
| those using locks and multi-threaded objects, via message sending. |