• Sami Kyostila's avatar
    chrome/browser/media/webrtc: Always specify thread affinity when posting tasks · 201cafdd
    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://chromium-review.googlesource.com/c/chromium/src/+/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=eladalon@chromium.org
    
    Bug: 968047
    Change-Id: I32f6d432ffa2550f58d433775e0adef216cf9ad5
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1738593
    Auto-Submit: Sami Kyöstilä <skyostil@chromium.org>
    Reviewed-by: default avatarElad Alon <eladalon@chromium.org>
    Commit-Queue: Sami Kyöstilä <skyostil@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#684406}
    201cafdd
webrtc_event_log_uploader.cc 14.7 KB