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]

Reply via email to