commit | 22ee114b142bfdfb7318f04b6860e59ad99ee7c9 | [log] [tgz] |
---|---|---|
author | Alexei Frolov <frolv@google.com> | Thu Feb 03 13:59:01 2022 -0800 |
committer | CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com> | Wed Feb 09 05:28:33 2022 +0000 |
tree | db028f602d10f62478f0a03bd6aa5e5a7ce345ba | |
parent | 5715ba8c76bdd608c723d98fc9c2d2193908f780 [diff] |
pw_transfer: Rewrite to use event model This updates the design of the pw_transfer C++ code to run via a series of events dispatched to a dedicated transfer thread. This removes any transfer processing from RPC callback contexts, preventing RPC-servicing threads from blocking on expensive transfer operations. Additionally, system timers are no longer used for timeouts, as the potential to run in an interrupt context precludes effective handling of timeout operations. Instead, timeouts are managed by the transfer thread checking to see if any of its transfers have timed out every time it runs. Change-Id: I28b858f1918c3f3a9e126564d3426a296519a5cc Requires: pigweed-internal:22480 Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/82883 Reviewed-by: Keir Mierle <keir@google.com> Commit-Queue: Wyatt Hepler <hepler@google.com>
Pigweed is an open source collection of embedded-targeted libraries–or as we like to call them, modules. These modules are building blocks and infrastructure that enable faster and more reliable development on small-footprint MMU-less 32-bit microcontrollers like the STMicroelectronics STM32L452 or the Nordic nRF52832.
For more information please see our website: https://pigweed.dev/