diff options
author | stanisc <stanisc@chromium.org> | 2014-10-23 22:17:44 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-10-24 05:18:13 +0000 |
commit | df486a3cbdad2025fff98fa497edb1261e83435c (patch) | |
tree | 87efc51c17caa9284c5cbad89403dcc1f160d557 /breakpad | |
parent | 20f85cd78d717d58547ba3e8a42ada14108b950e (diff) | |
download | chromium_src-df486a3cbdad2025fff98fa497edb1261e83435c.zip chromium_src-df486a3cbdad2025fff98fa497edb1261e83435c.tar.gz chromium_src-df486a3cbdad2025fff98fa497edb1261e83435c.tar.bz2 |
Sync: Avoid deadlock in SyncBackendRegistrar / ModelSafeWorker on sync backend shutdown.
This is a resubmit of the previous fix that has been reverted due to the
flaky unittest that would hang under the load:
https://codereview.chromium.org/637413003
Please see delta between patch sets 1 and 2 for the
unit test fix.
The test would hang due to a race condition between
MessageLoop::RunUntilIdle call for the main UI thread and
submitting a task on the UI thread from SyncBackendRegistrar running on the sync thread.
The new test implementation runs the UI thread loop continuously
until the expected result is reached so that eliminates the
race condition and makes the test simpler.
I verified the fix by running the test while running
Chromium build in background. Using this method I reliably
reproduced the hang with the first implementation of the test.
This version of the test works reliably under the same condition.
BUG=423078
Review URL: https://codereview.chromium.org/640853008
Cr-Commit-Position: refs/heads/master@{#301056}
Diffstat (limited to 'breakpad')
0 files changed, 0 insertions, 0 deletions