• Sami Kyostila's avatar
    chrome/browser/tracing: Always specify thread affinity when posting tasks · d8fa3628
    Sami Kyostila authored
    *** Note: There is no behavior change from this patch. ***
    
    The PostTask APIs will shortly be changed to require all tasks to explicitly
    specify their thread affinity, i.e., whether the task should run on the thread
    pool or a specific named thread such as a BrowserThread. This patch updates all
    call sites with thread affinity annotation. We also remove the "WithTraits"
    suffix to make the call sites more readable.
    
    Before:
    
        // Thread pool task.
        base::PostTaskWithTraits(FROM_HERE, {...}, ...);
    
        // UI thread task.
        base::PostTaskWithTraits(FROM_HERE, {BrowserThread::UI, ...}, ...);
    
    After:
    
        // Thread pool task.
        base::PostTask(FROM_HERE, {base::ThreadPool(), ...}, ...);
    
        // UI thread task.
        base::PostTask(FROM_HERE, {BrowserThread::UI, ...}, ...);
    
    This patch was semi-automatically prepared with these steps:
    
        1. Patch in https://crrev.com/c/1635827 to make thread affinity a build-time
           requirement.
        2. Run an initial pass with a clang rewriter:
           https://chromium-review.googlesource.com/c/chromium/src/+/1635623
        3. ninja -C out/Debug | grep 'requested here' | cut -d: -f1-3 | sort | \
               uniq > errors.txt
        4. while read line; do
             f=$(echo $line | cut -d: -f 1)
             r=$(echo $line | cut -d: -f 2)
             c=$(echo $line | cut -d: -f 3)
             sed -i "${r}s/./&base::ThreadPool(),/$c" $f
           done < errors.txt
        5. GOTO 3 until build succeeds.
        6. Remove the "WithTraits" suffix from task API call sites:
    
           $ tools/git/mffr.py -i <(cat <<EOF
           [
             ["PostTaskWithTraits",
              "PostTask"],
             ["PostDelayedTaskWithTraits",
              "PostDelayedTask"],
             ["PostTaskWithTraitsAndReply",
              "PostTaskAndReply"],
             ["CreateTaskRunnerWithTraits",
              "CreateTaskRunner"],
             ["CreateSequencedTaskRunnerWithTraits",
              "CreateSequencedTaskRunner"],
             ["CreateUpdateableSequencedTaskRunnerWithTraits",
              "CreateUpdateableSequencedTaskRunner"],
             ["CreateSingleThreadTaskRunnerWithTraits",
              "CreateSingleThreadTaskRunner"],
             ["CreateCOMSTATaskRunnerWithTraits",
              "CreateCOMSTATaskRunner"]
           ]
           EOF
           )
    
    This CL was uploaded by git cl split.
    
    R=oysteine@chromium.org
    
    Bug: 968047
    Change-Id: Ibc31dc65ba9108247d7e6780d5f815827f4a3354
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1739814
    Auto-Submit: Sami Kyöstilä <skyostil@chromium.org>
    Reviewed-by: default avataroysteine <oysteine@chromium.org>
    Commit-Queue: oysteine <oysteine@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#684453}
    d8fa3628
crash_service_uploader.cc 13.9 KB