• 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
..
OWNERS Loading commit data...
block-coverage-builder.h Loading commit data...
bytecode-array-accessor.cc Loading commit data...
bytecode-array-accessor.h Loading commit data...
bytecode-array-builder.cc Loading commit data...
bytecode-array-builder.h Loading commit data...
bytecode-array-iterator.cc Loading commit data...
bytecode-array-iterator.h Loading commit data...
bytecode-array-random-iterator.cc Loading commit data...
bytecode-array-random-iterator.h Loading commit data...
bytecode-array-writer.cc Loading commit data...
bytecode-array-writer.h Loading commit data...
bytecode-decoder.cc Loading commit data...
bytecode-decoder.h Loading commit data...
bytecode-flags.cc Loading commit data...
bytecode-flags.h Loading commit data...
bytecode-generator.cc Loading commit data...
bytecode-generator.h Loading commit data...
bytecode-jump-table.h Loading commit data...
bytecode-label.cc Loading commit data...
bytecode-label.h Loading commit data...
bytecode-node.cc Loading commit data...
bytecode-node.h Loading commit data...
bytecode-operands.cc Loading commit data...
bytecode-operands.h Loading commit data...
bytecode-register-allocator.h Loading commit data...
bytecode-register-optimizer.cc Loading commit data...
bytecode-register-optimizer.h Loading commit data...
bytecode-register.cc Loading commit data...
bytecode-register.h Loading commit data...
bytecode-source-info.cc Loading commit data...
bytecode-source-info.h Loading commit data...
bytecode-traits.h Loading commit data...
bytecodes.cc Loading commit data...
bytecodes.h Loading commit data...
constant-array-builder.cc Loading commit data...
constant-array-builder.h Loading commit data...
control-flow-builders.cc Loading commit data...
control-flow-builders.h Loading commit data...
handler-table-builder.cc Loading commit data...
handler-table-builder.h Loading commit data...
interpreter-assembler.cc Loading commit data...
interpreter-assembler.h Loading commit data...
interpreter-generator.cc Loading commit data...
interpreter-generator.h Loading commit data...
interpreter-intrinsics-generator.cc Loading commit data...
interpreter-intrinsics-generator.h Loading commit data...
interpreter-intrinsics.cc Loading commit data...
interpreter-intrinsics.h Loading commit data...
interpreter.cc Loading commit data...
interpreter.h Loading commit data...
setup-interpreter-internal.cc Loading commit data...
setup-interpreter.h Loading commit data...