commit | 0c87be526cb2bbc0ef32896f6548e14c047f4733 | [log] [tgz] |
---|---|---|
author | Wyatt Hepler <hepler@google.com> | Thu Jan 13 08:33:43 2022 -0800 |
committer | CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com> | Sat Jan 15 00:22:49 2022 +0000 |
tree | 8dfae073e03e0185605758a8a4a001182e5d9c42 | |
parent | 36a1ef7322c44fc5a9566783674a435a49897abf [diff] |
pw_rpc: ChannelOutput buffer handling fixes - Ensure ChannelOutput buffers are always released when a call is closed. * Release any held buffer when aborting a server call due to an error. * Permit calling AcquirePayloadBuffer() on an inactive call, but return an empty buffer if it is called while inactive. Previously, this was disallowed, but it may not be possible to prevent an accidental AcquirePayloadBuffer() on a closed call if it is closed by a different thread. * Release any held buffer when a client call goes out of scope or is aborted. - Extend locking annotations to cover setting callbacks. - Expose the function to end client streams as CloseClientStream(). Change-Id: I892c66bbeb1701329783b8c360d02ffe25992d98 Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/78622 Reviewed-by: Alexei Frolov <frolv@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/