commit | 022c1c63fecca8d5ac7985769a3428fc63babc73 | [log] [tgz] |
---|---|---|
author | Mike Wittman <wittman@chromium.org> | Tue Feb 07 01:15:34 2023 |
committer | Chromium LUCI CQ <chromium-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue Feb 07 01:15:34 2023 |
tree | 44ab70a3e7c619d32ab84bc136e2d144bcbfd89f | |
parent | a20584b9da3a480af76313e00939818196be178a [diff] |
Make TaskManagerImpl leaky rather than atexit destroyed Works around the fact that TaskManagerImpl and its owned task providers are created on the UI thread but destroyed on a different thread via atexit. This is blocking removal of the render process host created notification from RenderProcessHostTaskProvider under https://crbug.com/357627, which requires destruction, if it occurs, to happen on the UI thread. All observers that would cause the TaskManagerImpl to be active are destroyed during shutdown. So moving to leaky allocation shouldn't present destruction ordering issues where an active TaskManagerImpl tries to access destroyed state. Note that we can't use base::NoDestructor<> for this because the logic depends on being able to check whether the TaskManagerImpl was created. Bug: 1409173 Change-Id: Ieb9a4d1363ba5c448b7551df6d59c37cec23c5a7 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4184773 Reviewed-by: Ahmed Fakhry <afakhry@chromium.org> Commit-Queue: Mike Wittman <wittman@chromium.org> Code-Coverage: Findit <findit-for-me@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/main@{#1101902}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
To check out the source code locally, don't use git clone
! Instead, follow the instructions on how to get the code.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .
For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.
If you found a bug, please file it at https://crbug.com/new.