• Clemens Backes's avatar
    [wasm] Fix interrupt of empty loop · 43232bf0
    Clemens Backes authored
    This includes two fixes:
    1. For dynamic tiering, the budget must always be reduced when jumping
       backwards, otherwise we might never trigger tier up, which makes the
       loop non-interruptible (because the tier-up check replaces the stack
       check).
    2. The d8 worker implementation also needs to terminate the isolate via
       an interrupt, in addition to scheduling a task, because the worker
       might never return to the event queue.
    
    This CL also fixes one of the failure modes of the inspector fuzzer
    (see https://crbug.com/1180018).
    
    R=jkummerow@chromium.org, marja@chromium.org
    
    Bug: v8:12767, chromium:1180018
    
    Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng
    Change-Id: Ia01d1725fc14931d2ea54c4769c4ee93f866ed63
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3568470Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
    Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
    Commit-Queue: Clemens Backes <clemensb@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#79773}
    43232bf0
worker-running-empty-loop-interruptible.js 1.03 KB