See racy trace_event: http://crbug.com/1091723 The trace event macros were racy because of this code: INTERNAL_TRACE_EVENT_GET_CATEGORY_INFO(...) The macro is using a static variable which is not thread-safe. The design of tracing was racy (by design) and rely on the fact that addTraceEvent(...) is threadsafe internally via TraceLog::lock_ This CL is replacing the static variable with a scope (C++11) pattern. The static variable is guaranted (C++) to be atomic and it is implemented efficiently. see: §6.7 [stmt.dcl] p4 " If control enters the declaration concurrently while the variable is being initialized, the concurrent execution shall wait for completion of the initialization. " Bug to track follow-up migration: http://anglebug.com/4702 Bug: chromium:1091259, chromium:1091723 Change-Id: If67b501e6e826ccf603eb2349c3f0aa6272c9a52 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2233410 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by:Jamie Madill <jmadill@chromium.org>
| Name |
Last commit
|
Last update |
|---|---|---|
| android | Loading commit data... | |
| build_overrides | Loading commit data... | |
| doc | Loading commit data... | |
| extensions | Loading commit data... | |
| gni | Loading commit data... | |
| include | Loading commit data... | |
| infra | Loading commit data... | |
| samples | Loading commit data... | |
| scripts | Loading commit data... | |
| src | Loading commit data... | |
| third_party | Loading commit data... | |
| tools | Loading commit data... | |
| util | Loading commit data... | |
| .clang-format | Loading commit data... | |
| .gitattributes | Loading commit data... | |
| .gitignore | Loading commit data... | |
| .gn | Loading commit data... | |
| .style.yapf | Loading commit data... | |
| .yapfignore | Loading commit data... | |
| AUTHORS | Loading commit data... | |
| BUILD.gn | Loading commit data... | |
| CONTRIBUTORS | Loading commit data... | |
| DEPS | Loading commit data... | |
| LICENSE | Loading commit data... | |
| OWNERS | Loading commit data... | |
| PRESUBMIT.py | Loading commit data... | |
| README.chromium | Loading commit data... | |
| README.md | Loading commit data... | |
| WATCHLISTS | Loading commit data... | |
| additional_readme_paths.json | Loading commit data... | |
| codereview.settings | Loading commit data... | |
| dotfile_settings.gni | Loading commit data... |