• Alexei Filippov's avatar
    [runtime-call-stats] Fix a long standing crash in RuntimeCallStats::Leave · ed7155c6
    Alexei Filippov authored
    Make sure there is a matching Leave for each Enter. Otherwise it ends up
    with a dead stack-allocated object in the timer chain.
    
    The patch incorporates the following fixes:
    - RuntimeCallTimerScope::RuntimeCallTimerScope(HeapObject* ...) did create a
      local object instead of calling an overloaded constructor.
    - InterpreterCompilationJob::ExecuteJobImpl made an implicit call to a default
      copy constructor of TimerScope which led to a single Enter was made per two
      Leaves.
    - InterpreterCompilationJob::FinalizeJobImpl was calling RuntimeCallTimerScope
      from a background thread, which caused timer scopes become unbalanced.
    - RuntimeCallTimerScope constructors were put into counters-inl.h which is not
      included into most usages of RCS. That led to a suboptimal performance.
    - Added thread check into Enter and Leave
    
    BUG=chromium:669329
    
    Change-Id: Ib5cff0e02e0b6c8b56a03ca3a5ebc37d93fcde55
    Reviewed-on: https://chromium-review.googlesource.com/637307Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
    Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
    Commit-Queue: Alexei Filippov <alph@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#47666}
    ed7155c6
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
docs Loading commit data...
gni Loading commit data...
gypfiles Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.editorconfig Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
Makefile Loading commit data...
Makefile.android Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...