.. _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 --- .. doxygenclass:: pw::async::BasicDispatcher :members: :protected-members: ----- 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 ----------- .. TODO: b/388905812 - Re-enable the size report. .. .. include:: docs_size_report .. include:: ../size_report_notice