[llvm] [Parallel] Ensure getThreadIndex()==0 for sequential tasks (PR #109084)
    Alexey Lapshin via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Thu Sep 19 13:52:56 PDT 2024
    
    
  
================
@@ -217,13 +194,18 @@ TaskGroup::~TaskGroup() {
 void TaskGroup::spawn(std::function<void()> F, bool Sequential) {
 #if LLVM_ENABLE_THREADS
   if (Parallel) {
+    if (Sequential) {
+      // Act as worker thread 0.
+      threadIndex = 0;
----------------
avl-llvm wrote:
if this code would be left in the patch:
```
    if (Sequential) {
      // Act as worker thread 0.
      threadIndex = 0;   <<<<<<<<<<<<<<<<<<<
```
then threadIndex = 0 could clash with another thread having threadIndex = 0. Which might result in concurrent access to the resource with index 0.
https://github.com/llvm/llvm-project/pull/109084
    
    
More information about the llvm-commits
mailing list