• Etienne Pierre-Doray's avatar
    Revert "[Jobs API]: Use worker_lock in JobTaskSource." · 2d9930b8
    Etienne Pierre-Doray authored
    This reverts commit 6eb566d2.
    
    Reason for revert: Cause failure in CheckedLockImpl::Acquire
    crbug.com/1099649
    
    Original change's description:
    > [Jobs API]: Use worker_lock in JobTaskSource.
    > 
    > Possible race when Join():
    > - thread A: Join: worker_released_condition_->Wait()
    > - thread C: WillRunTask:
    >               GetMaxConcurrency() returns > 0
    > - thread B: already running, finishes all the work
    >               GetMaxConcurrency() goes 0
    > - thread B: DidProcessTask:
    >               worker_released_condition_->Signal(),
    > - thread A: Join returns (GetMaxConcurrency() is 0)
    > - thread C: TryIncrementWorkerCountFromWorkerRelease
    >               worker count goes 1
    > - thread C: runs worker_task after Join
    > 
    > To fix race when Joining, all writes to |state_| are protected by
    > |worker_lock|. Memory ordering is no longer necessary.
    > 
    > Alternative: cancel before Join returns with a compare and swap and
    > loop again if new workers.
    > 
    > Change-Id: I4e478ffae2bdaec56386739f78de089d0e74e42c
    > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2248159
    > Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
    > Reviewed-by: Gabriel Charette <gab@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#781453}
    
    TBR=gab@chromium.org,etiennep@chromium.org
    Bug: 1099649
    
    # Not skipping CQ checks because original CL landed > 1 day ago.
    
    Change-Id: I4860090b05afdc8b1e29fbdf2b984756ffbf08c1
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2270618Reviewed-by: default avatarEtienne Pierre-Doray <etiennep@chromium.org>
    Reviewed-by: default avatarGabriel Charette <gab@chromium.org>
    Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#783102}
    2d9930b8
job_task_source.cc 15.3 KB