Fix race when falling back from RDMA to TCP (#3406)

Make the handshake state atomic and publish RDMA_OFF before
FALLBACK_TCP. This prevents TCP event handling from observing a
partially published fallback state. Use a relaxed load for the
completion-path check because it does not consume related data.

Signed-off-by: Lijin Xiong <legion.xiong@gmail.com>
Co-authored-by: Lijin Xiong <lijin.xiong@zstack.io>
2 files changed
tree: 3bf48856352702cf1c31528c9888880d7777293e
  1. .github/
  2. bazel/
  3. cmake/
  4. community/
  5. docs/
  6. example/
  7. homebrew-formula/
  8. java/
  9. package/
  10. python/
  11. registry/
  12. src/
  13. test/
  14. tools/
  15. .asf.yaml
  16. .bazelignore
  17. .bazelrc
  18. .bazelversion
  19. .gitignore
  20. .licenserc.yaml
  21. AGENTS.md
  22. BUILD.bazel
  23. CHANGES.md
  24. CLAUDE.md
  25. CMakeLists.txt
  26. CODE_OF_CONDUCT.md
  27. config.h.in
  28. config_brpc.sh
  29. CONTRIBUTING.md
  30. Dockerfile
  31. LICENSE
  32. Makefile
  33. MODULE.bazel
  34. NOTICE
  35. README.md
  36. README_cn.md
  37. RELEASE_VERSION
  38. SECURITY.md
  39. THREAT_MODEL.md
  40. WORKSPACE
  41. WORKSPACE.bzlmod
README.md

中文版

Linux Build Status MacOs Build Status

brpc logo (light) brpc logo (dark)

bRPC is an Industrial-grade RPC framework using C++ Language, which is often used in high performance system such as Search, Storage, Machine learning, Advertisement, Recommendation etc.

“bRPC” means “better RPC”.

You can use it to:

Try it!

Contribute code

Please refer to here.

Feedback and Getting involved

Code of Conduct

We follow the code of conduct from Apache Software Foundation, please refer it here Link