[roll third_party/pigweed] pw_{rpc, sync_stl}: Assert if STL mutex is misused

- Update the pw_sync_stl mutex to track whether it is locked and assert
  if it's used improperly. The C++ standard states that unlocking an
  unlocked mutex is undefined behavior. Neither libc++ nor libstdc++
  crash when a mutex is unlocked multiple times (at least on Linux).
- Annotate the stub pw::rpc::internal::LockGuard class with thread
  safety annotations so that thread safety analysis applies when
  compiling without RPC locking.

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

https://pigweed.googlesource.com/pigweed/pigweed
third_party/pigweed Rolled-Commits: e4a0a67c425eec9..d7f76fa1614667c
Roller-URL: https://ci.chromium.org/b/8825312103706008257
Cq-Cl-Tag: roller-builder:pigweed-experimental-roller
Cq-Cl-Tag: roller-bid:8825312103706008257
CQ-Do-Not-Cancel-Tryjobs: true
Change-Id: I3020c111c7e37646311a291fa74c4dd4c2f95078
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/experimental/+/78080
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: 2278f134e00e3938cb6200a66107c955902c8d04
  1. applications/
  2. build_overrides/
  3. pw_board_led/
  4. pw_board_led_arduino/
  5. pw_board_led_host/
  6. pw_board_led_stm32cube/
  7. pw_board_led_stm32f429i_disc1/
  8. pw_spin_delay/
  9. pw_spin_delay_arduino/
  10. pw_spin_delay_host/
  11. pw_spin_delay_stm32cube/
  12. pw_spin_delay_stm32f429i_disc1/
  13. targets/
  14. third_party/
  15. tools/
  16. .gitattributes
  17. .gitignore
  18. .gitmodules
  19. .gn
  20. activate.bat
  21. banner.txt
  22. bootstrap.bat
  23. bootstrap.sh
  24. BUILD.gn
  25. BUILDCONFIG.gn
  26. env_setup.json
  27. navbar.md
  28. OWNERS
  29. PW_PLUGINS
  30. 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.