• Andreas Haas's avatar
    [wasm] Allow to restart background tasks during streaming compilation · 2c3fae96
    Andreas Haas authored
    In a certain scenario streaming compilation got stuck and did never
    finish. This CL fixes this issue.
    
    Scenario:
    * Streaming compilation starts
    * The compilation tasks execute all compiation units in the working
      queue and set the finished_ flag to true.
    * New data arrives over streaming
    * The compilation tasks compile so fast that the executed_units_ queue
      gets full. The compilation tasks stop executing and wait for the
      finisher task to restart them.
    * The finisher task does not restart the compilation tasks because the
      finished_ flag is set.
    
    With this CL I remove the finished flag and instead look at the size
    of the working queue directly.
    
    In addition I added a test which does not actually reproduce this
    scenario but seems good to have anyways.
    
    R=mtrofin@chromium.org
    
    Change-Id: I44560c43e51be13c4461208368e21137b115656c
    Reviewed-on: https://chromium-review.googlesource.com/824523Reviewed-by: 's avatarMircea Trofin <mtrofin@chromium.org>
    Commit-Queue: Andreas Haas <ahaas@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#50090}
    2c3fae96
Name
Last commit
Last update
..
baseline Loading commit data...
OWNERS Loading commit data...
compilation-manager.cc Loading commit data...
compilation-manager.h Loading commit data...
decoder.h Loading commit data...
function-body-decoder-impl.h Loading commit data...
function-body-decoder.cc Loading commit data...
function-body-decoder.h Loading commit data...
leb-helper.h Loading commit data...
local-decl-encoder.cc Loading commit data...
local-decl-encoder.h Loading commit data...
memory-tracing.cc Loading commit data...
memory-tracing.h Loading commit data...
module-compiler.cc Loading commit data...
module-compiler.h Loading commit data...
module-decoder.cc Loading commit data...
module-decoder.h Loading commit data...
signature-map.cc Loading commit data...
signature-map.h Loading commit data...
streaming-decoder.cc Loading commit data...
streaming-decoder.h Loading commit data...
wasm-api.cc Loading commit data...
wasm-api.h Loading commit data...
wasm-code-manager.cc Loading commit data...
wasm-code-manager.h Loading commit data...
wasm-code-specialization.cc Loading commit data...
wasm-code-specialization.h Loading commit data...
wasm-code-wrapper.cc Loading commit data...
wasm-code-wrapper.h Loading commit data...
wasm-debug.cc Loading commit data...
wasm-engine.h Loading commit data...
wasm-external-refs.cc Loading commit data...
wasm-external-refs.h Loading commit data...
wasm-interpreter.cc Loading commit data...
wasm-interpreter.h Loading commit data...
wasm-js.cc Loading commit data...
wasm-js.h Loading commit data...
wasm-limits.h Loading commit data...
wasm-memory.cc Loading commit data...
wasm-memory.h Loading commit data...
wasm-module-builder.cc Loading commit data...
wasm-module-builder.h Loading commit data...
wasm-module.cc Loading commit data...
wasm-module.h Loading commit data...
wasm-objects-inl.h Loading commit data...
wasm-objects.cc Loading commit data...
wasm-objects.h Loading commit data...
wasm-opcodes.cc Loading commit data...
wasm-opcodes.h Loading commit data...
wasm-result.cc Loading commit data...
wasm-result.h Loading commit data...
wasm-serialization.cc Loading commit data...
wasm-serialization.h Loading commit data...
wasm-text.cc Loading commit data...
wasm-text.h Loading commit data...
wasm-value.h Loading commit data...