pw_chrono_stl#
Pigweed AI summary: The pw_chrono_stl module is a collection of pw_chrono backends that use the std::chrono library. The SystemClock backend uses std::chrono::steady_clock and the SystemTimer backend spawns a detached thread for every InvokeAt() and InvokeAfter() call. The build for pw_chrono_stl has one target: system_clock. The API is not yet stable and the current implementation of the SystemTimer backend is not efficient. See the documentation for pw_chrono
pw_chrono_stl is a collection of pw_chrono backends that are implemented
using STL’s std::chrono library.
Warning
This module is still under construction, the API is not yet stable.
SystemClock backend#
Pigweed AI summary: The SystemClock backend uses the pw_chrono_stl:system_clock and implements the pw_chrono:system_clock facade by utilizing the std::chrono::steady_clock. It is important to note that the std::chrono::system_clock cannot be used as it is not always a monotonic clock source. For more information, refer to the documentation for pw_chrono.
The STL based pw_chrono_stl:system_clock backend target implements the
pw_chrono:system_clock facade by using the std::chrono::steady_clock.
Note that the std::chrono::system_clock cannot be used as this is not always
a monotonic clock source.
See the documentation for pw_chrono for further details.
SystemTimer backend#
Pigweed AI summary: The SystemTimer backend uses the pw_chrono_stl:system_timer backend target to implement the pw_chrono:system_timer facade by creating a detached thread for each InvokeAt() and InvokeAfter() call. The thread sleeps until the expiration_deadline and then invokes the user's ExpiryCallback if it wasn't cancelled. However, the current implementation is not efficient. For more information, refer to the documentation for pw_chrono.
The STL based pw_chrono_stl:system_timer backend target implements the
pw_chrono:system_timer facade by spawning a detached thread for every single
InvokeAt() and InvokeAfter() call. This thread simply sleeps until the
desired expiration_deadline and invokes the user’s ExpiryCallback if it
wasn’t cancelled.
Warning
Although fully functional, the current implementation is NOT efficient!
See the documentation for pw_chrono for further details.
Build targets#
Pigweed AI summary: The GN build for "pw_chrono_stl" has one target called "system_clock". This target provides headers and a backend for "pw_chrono:system_clock".
The GN build for pw_chrono_stl has one target: system_clock.
The system_clock target provides the
pw_chrono_backend/system_clock_config.h and
pw_chrono_backend/system_clock_inline.h headers and the backend for the
pw_chrono:system_clock.