summaryrefslogtreecommitdiffstats
path: root/components/component_updater/component_updater_service.cc
diff options
context:
space:
mode:
authorsorin <sorin@chromium.org>2015-11-13 11:15:52 -0800
committerCommit bot <commit-bot@chromium.org>2015-11-13 19:16:58 +0000
commitecaad3ed68ce40ebace432938af511c51660255c (patch)
tree76c4c07d0edba9fc5f91b8090472c8ebec07aa5a /components/component_updater/component_updater_service.cc
parent5acf85a4aebf309d5cb11c6774ef3a067d12a21a (diff)
downloadchromium_src-ecaad3ed68ce40ebace432938af511c51660255c.zip
chromium_src-ecaad3ed68ce40ebace432938af511c51660255c.tar.gz
chromium_src-ecaad3ed68ce40ebace432938af511c51660255c.tar.bz2
Reland of Change the update_client task runner behavior to continue on shutdown. (patchset #1 id:1 of https://codereview.chromium.org/1439153002/ )
Reason for revert: The original change has been ruled out as the cause for https://code.google.com/p/chromium/issues/detail?id=475872 Therefore, this is the revert of the revert for https://codereview.chromium.org/1415933011/ When this patch lands, the state of the code will be that we would have the intended BITS threading changes in, but BITS itself will still be disabled due to https://codereview.chromium.org/1441223002/ Another change to re-enable BITS will land shortly. Original issue's description: > Revert of Change the update_client task runner behavior to continue on shutdown. (patchset #2 id:20001 of https://codereview.chromium.org/1415933011/ ) > > Reason for revert: > This change is a suspect for causing crbug.com/475872 > > Original issue's description: > > Change the update_client task runner behavior to continue on shutdown. > > > > Historically, we've had issues with running the BITS COM client on > > threads and interfering with the browser shutdown. > > > > For reason not entirely understood, some out of process COM calls, > > and most common the call to enumerate BITS jobs appear to hang and > > consequently trigger the browser hang shutdown detector. > > > > At first, we had run this code on the FILE thread, then we had moved > > it on blocking pool threads. However, the net effect is that the > > hang moved as well. > > > > This change avoids blocking the shutdown by allowing the code to > > run after the browser shutdown until the OS terminates the thread as > > part of the process exit. > > > > While it is somehow difficult to reason about the correctness of > > the update_client code, this change is reasonably safe to make > > due to aspects of refcounting and containment of the update_client > > such as not accessing browser global state and refcounting the > > objects that are thread aware. > > > > BUG=552028 > > > > Committed: https://crrev.com/5081941b99d37952e1c60c9cb24257369d9c6416 > > Cr-Commit-Position: refs/heads/master@{#359138} > > TBR=waffles@chromium.org,asargent@chromium.org,rockot@chromium.org > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=552028 > > Committed: https://crrev.com/f4106b804bd4a023c044de4a6b2c4f5e564b0954 > Cr-Commit-Position: refs/heads/master@{#359441} TBR=waffles@chromium.org,asargent@chromium.org,rockot@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=552028 Review URL: https://codereview.chromium.org/1440393002 Cr-Commit-Position: refs/heads/master@{#359594}
Diffstat (limited to 'components/component_updater/component_updater_service.cc')
-rw-r--r--components/component_updater/component_updater_service.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/components/component_updater/component_updater_service.cc b/components/component_updater/component_updater_service.cc
index 29b120e..1c49d26 100644
--- a/components/component_updater/component_updater_service.cc
+++ b/components/component_updater/component_updater_service.cc
@@ -89,6 +89,7 @@ void CrxUpdateService::Stop() {
DCHECK(thread_checker_.CalledOnValidThread());
VLOG(1) << "CrxUpdateService stopping";
timer_.Stop();
+ update_client_->Stop();
}
// Adds a component to be checked for upgrades. If the component exists it