commit | a91b44f5abe21ea178d8f94ad3f3d7128921d330 | [log] [tgz] |
---|---|---|
author | Findit <findit-for-me@appspot.gserviceaccount.com> | Thu May 09 19:59:42 2019 |
committer | Findit <findit-for-me@appspot.gserviceaccount.com> | Thu May 09 19:59:42 2019 |
tree | 130aab800758bbc34b5d8a40333e3f710b682b30 | |
parent | d218180040b5bacb24a53c8e2ab64ab7d69d058b [diff] |
Revert "Promises: Add AbstractPromise" This reverts commit 1179f4e0a2a90ea275fe2bf773995534d962cbaa. Reason for revert: Findit (https://goo.gl/kROfz5) identified CL at revision 658119 as the culprit for flakes in the build cycles as shown on: https://analysis.chromium.org/p/chromium/flake-portal/analysis/culprit?key=ag9zfmZpbmRpdC1mb3ItbWVyQwsSDEZsYWtlQ3VscHJpdCIxY2hyb21pdW0vMTE3OWY0ZTBhMmE5MGVhMjc1ZmUyYmY3NzM5OTU1MzRkOTYyY2JhYQw Sample Failed Build: https://ci.chromium.org/buildbot/chromium.memory/Linux%20TSan%20Tests/38186 Sample Failed Step: base_unittests Sample Flaky Test: AbstractPromiseTest.MutipleThreadsAddingDependants Original change's description: > Promises: Add AbstractPromise > > This is the internal promise representation. It implements the machinery > needed to marshal and dispatch promises as they become ready for > execution. > > Care has been taken to try and minimize the size of the AbstractPromise > class and to keep down the number of heap allocations. The promise result > and the executor are both stored in the base::unique_any since they are > never needed at the same time. The size of AbstractPromise on x64 is 96 > bytes in builds without DCHECKS. > > In builds with DCHECKS it's larger because there's additional storage > used to diagnose and prevent various usage hazards: > > * Unhandled rejection > * Double move of promise results to callbacks > * Mixed move and non-move semantics of promise results to callbacks > > The base::any_internal type has been adjusted so it can store the > SmallUniqueObject<> inline, which is used to store the promise executor. > The largest anticipated promise executor base::All is the size of > 3x sizeof(void*) to hold a vtable and a std::vector. > > Design: https://docs.google.com/document/d/1l12PAJgEtlrqTXKiw6mk2cR2jP7FAfCCDr-DGIdiC9w/edit > > Bug: 906125 > Change-Id: I0c14e9138a11ef46b15848bcbb25ad21b0506f98 > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1539981 > Commit-Queue: Alex Clarke <alexclarke@chromium.org> > Reviewed-by: François Doray <fdoray@chromium.org> > Reviewed-by: Etienne Pierre-Doray <etiennep@chromium.org> > Cr-Commit-Position: refs/heads/master@{#658119} Change-Id: I112d519aa34ccf48576e5c0cdc55e21821412826 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 906125 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1603213 Cr-Commit-Position: refs/heads/master@{#658232}
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.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .