| .. _module-pw_async_basic: |
| |
| ================ |
| pw_async_basic |
| ================ |
| |
| This module includes basic implementations of pw_async's Dispatcher and |
| FakeDispatcher. |
| |
| 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.PostDelayedTask([](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 |