commit | bbfdd9f0669c9856883ffbf2cd9909e2a4df9dcf | [log] [tgz] |
---|---|---|
author | haraken <[email protected]> | Thu Jan 12 07:14:04 2017 |
committer | Commit bot <[email protected]> | Thu Jan 12 07:14:04 2017 |
tree | c4ea5d0f4e86791c6345dd61f456f0ca3c84f180 | |
parent | e3d63f666dd906c320f67c7286f2d9a9316c2ef5 [diff] [blame] |
Remove RenderThreadImpl::Shutdown RenderThreadImpl::Shutdown has been shutting down Blink and V8 gracefully, but the graceful shutdown has caused tons of use-after-free bugs (and many engineers has spent lots of time fixing ordering issues around the shutdown). As discussed in chromium-dev@ (https://groups.google.com/a/chromium.org/d/topic/chromium-dev/OLS4JSZvowI/discussion) and platform-architecture-dev@ (https://groups.google.com/a/chromium.org/d/topic/platform-architecture-dev/Zc12k91NTFk/discussion), there is no reason we have to shut down the renderer gracefully. It's just causing use-after-free bugs and wasting performance. Hence this CL removes RenderThreadImpl::Shutdown and instead calls _exit(0) in ~ChildProcess. We need a couple of special handling in a single-process mode. See the comment in ~ChildProcess for more details. BUG=639244 Review-Url: https://codereview.chromium.org/2309153002 Cr-Commit-Position: refs/heads/master@{#443175}
diff --git a/base/at_exit.h b/base/at_exit.h index 02e18ed9..6bf3f503 100644 --- a/base/at_exit.h +++ b/base/at_exit.h
@@ -49,6 +49,10 @@ // is possible to register new callbacks after calling this function. static void ProcessCallbacksNow(); + // Disable all registered at-exit callbacks. This is used only in a single- + // process mode. + static void DisableAllAtExitManagers(); + protected: // This constructor will allow this instance of AtExitManager to be created // even if one already exists. This should only be used for testing!