41 lines
1.4 KiB
ReStructuredText
41 lines
1.4 KiB
ReStructuredText
.. _module-pw_chrono_stl:
|
|
|
|
-------------
|
|
pw_chrono_stl
|
|
-------------
|
|
``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
|
|
-------------------
|
|
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
|
|
-------------------
|
|
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
|
|
-------------
|
|
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``.
|