| .. _module-pw_async_basic: | |
| ============== | |
| pw_async_basic | |
| ============== | |
| .. pigweed-module:: | |
| :name: pw_async_basic | |
| This module includes basic implementations of pw_async's Dispatcher and | |
| FakeDispatcher. | |
| --- | |
| API | |
| --- | |
| Moved: :cc:`pw_async_basic` | |
| ----- | |
| Usage | |
| ----- | |
| First, set the following GN variables: | |
| .. code-block:: | |
| pw_async_TASK_BACKEND="$dir_pw_async_basic:task" | |
| pw_async_FAKE_DISPATCHER_BACKEND="$dir_pw_async_basic:fake_dispatcher" | |
| Next, create a target that depends on ``//pw_async_basic:dispatcher``: | |
| .. code-block:: | |
| pw_executable("hello_world") { | |
| sources = [ "hello_world.cc" ] | |
| deps = [ | |
| "//pw_async_basic:dispatcher", | |
| ] | |
| } | |
| Next, construct and use a ``BasicDispatcher``. | |
| .. code-block:: cpp | |
| #include "pw_async_basic/dispatcher.h" | |
| void DelayedPrint(pw::async::Dispatcher& dispatcher) { | |
| dispatcher.PostAfter([](auto&) { printf("hello world\n"); }, 5s); | |
| } | |
| int main() { | |
| pw::async::BasicDispatcher dispatcher; | |
| DelayedPrint(dispatcher); | |
| dispatcher.RunFor(10s); | |
| return 0; | |
| } | |
| ----------- | |
| Size Report | |
| ----------- | |
| .. include:: docs_size_report |