altman08 opened a new pull request, #3393: URL: https://github.com/apache/brpc/pull/3393
…r_ptr in sched_to tls_unique_user_ptr was read directly without going through the BAIDU_GET_VOLATILE_THREAD_LOCAL macro in TaskGroup::sched_to, while the paired write later in the same function correctly used BAIDU_SET_VOLATILE_THREAD_LOCAL. sched_to contains jump_stack, a suspend-point where GCC (aarch64) and Clang may incorrectly cache the address of a thread_local variable, which is exactly the hazard BAIDU_GET_VOLATILE_THREAD_LOCAL is designed to avoid. Fix the read to use the macro for consistency and correctness. ### What problem does this PR solve? Issue Number: resolve Problem Summary: ### What is changed and the side effects? Changed: Side effects: - Performance effects: - Breaking backward compatibility: --- ### Check List: - Please make sure your changes are compilable. - When providing us with a new feature, it is best to add related tests. - Please follow [Contributor Covenant Code of Conduct](https://github.com/apache/brpc/blob/master/CODE_OF_CONDUCT.md). -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
