• 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
module-compiler.cc 180 KB