commit | b1c47994255567d42db4e4197f86da4cd8534fb3 | [log] [tgz] |
---|---|---|
author | Wyatt Hepler <hepler@google.com> | Thu Jan 06 11:05:50 2022 -0800 |
committer | CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com> | Thu Jan 06 22:04:34 2022 +0000 |
tree | c13f338ed0910fcf8fc34666f1839fd69bac2de2 | |
parent | a06939d49ff44aa14fd5cb907dfe9d09963262e3 [diff] |
pw_rpc: Locking improvements - Expand locking annotations for internal::Call class members. - Have the ChannelOutput::Send call release the RPC lock right before sending the packet. This ensures the Call object's OutputBuffer reference is cleared while the lock is held. - Avoid holding the RPC lock while logging. - Clear the encoding buffer in FakeChannelOutput to catch code that uses stale references. - Have FakeChannelOutput check that its buffers are properly acquired and released. - Mark PayloadBuffer() as [[nodiscard]]. Change-Id: I948e4ab531f45f424f2cd8cd3fa671bbb1509a85 Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/76640 Pigweed-Auto-Submit: Wyatt Hepler <hepler@google.com> Reviewed-by: Alexei Frolov <frolv@google.com> Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.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/