.. _module-pw_work_queue: ============= pw_work_queue ============= The ``pw_work_queue`` module contains utilities for deferring work to be executed by another thread. .. warning:: This module is still under construction; the API is not yet stable. ------- Example ------- .. code-block:: cpp #include "pw_thread/detached_thread.h" #include "pw_work_queue/work_queue.h" pw::work_queue::WorkQueueWithBuffer<10> work_queue; pw::thread::Options& WorkQueueThreadOptions(); void SomeLongRunningProcessing(); void SomeInterruptHandler() { // Instead of executing the long running processing task in the interrupt, // the work_queue executes it on the interrupt's behalf. work_queue.CheckPushWork(SomeLongRunningProcessing); } int main() { // Start up the work_queue as a detached thread which runs forever. pw::thread::DetachedThread(WorkQueueThreadOptions(), work_queue); } ------------- API reference ------------- .. doxygennamespace:: pw::work_queue :members: