[roll third_party/pigweed] 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().

Original-Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/78622

https://pigweed.googlesource.com/pigweed/pigweed
third_party/pigweed Rolled-Commits: 36a1ef7322c44fc..0c87be526cb2bbc
Roller-URL: https://ci.chromium.org/b/8825015389225859505
Cq-Cl-Tag: roller-builder:pigweed-experimental-roller
Cq-Cl-Tag: roller-bid:8825015389225859505
CQ-Do-Not-Cancel-Tryjobs: true
Change-Id: Ic7ed60f4ada53f7729e41b87eda4c15a02010730
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/experimental/+/78590
Bot-Commit: Pigweed Integration Roller <pigweed-integration-roller@pigweed.google.com.iam.gserviceaccount.com>
Commit-Queue: Pigweed Integration Roller <pigweed-integration-roller@pigweed.google.com.iam.gserviceaccount.com>
1 file changed
tree: 765f00a1eb1f2213974b6613bd0449d161a14a36
  1. applications/
  2. build_overrides/
  3. infra/
  4. pw_board_led/
  5. pw_board_led_arduino/
  6. pw_board_led_host/
  7. pw_board_led_stm32cube/
  8. pw_board_led_stm32f429i_disc1/
  9. pw_spin_delay/
  10. pw_spin_delay_arduino/
  11. pw_spin_delay_host/
  12. pw_spin_delay_stm32cube/
  13. pw_spin_delay_stm32f429i_disc1/
  14. targets/
  15. third_party/
  16. tools/
  17. .gitattributes
  18. .gitignore
  19. .gitmodules
  20. .gn
  21. activate.bat
  22. banner.txt
  23. bootstrap.bat
  24. bootstrap.sh
  25. BUILD.gn
  26. BUILDCONFIG.gn
  27. env_setup.json
  28. navbar.md
  29. OWNERS
  30. PW_PLUGINS
  31. README.md
README.md

Pigweed Experimental

This repository contains experimental pigweed modules.

Repository setup

Clone this repo with --recursive to get all required submodules.

git clone --recursive https://pigweed.googlesource.com/pigweed/experimental

This will pull the Pigweed source repository into third_party/pigweed. If you already cloned but forgot to --recursive run git submodule update --init to pull all submodules.