• Jakob Gruber's avatar
    [execution] Only take a single lock while handling interrupts · 4e3b1874
    Jakob Gruber authored
    StackGuard::HandleInterrupts used to take a lock for testing and
    clearing each individual interrupt bit. This CL changes that to a
    single read up front.
    
    Slight behavioral changes:
    
    1. A TERMINATE_EXECUTION interrupt is now handled first; we
    immediately exit and preserve all other interrupts (in case V8 is
    later resumed).
    2. Since interrupts are read once, it is no longer possible to request
    an interrupt *within* HandleInterrupts that will later be processed
    within the same HandleInterrupts call.
    3. Stack limits are reset immediately after reading the interrupt
    bits, and prior to actually processing the interrupts.
    
    Bug: v8:9328
    Change-Id: I3048bb413213d11307df49e0014b64a2b43444e0
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1653115
    Commit-Queue: Jakob Gruber <jgruber@chromium.org>
    Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#62132}
    4e3b1874
Name
Last commit
Last update
..
arm Loading commit data...
arm64 Loading commit data...
ia32 Loading commit data...
mips Loading commit data...
mips64 Loading commit data...
ppc Loading commit data...
s390 Loading commit data...
x64 Loading commit data...
OWNERS Loading commit data...
arguments-inl.h Loading commit data...
arguments.cc Loading commit data...
arguments.h Loading commit data...
execution.cc Loading commit data...
execution.h Loading commit data...
frame-constants.h Loading commit data...
frames-inl.h Loading commit data...
frames.cc Loading commit data...
frames.h Loading commit data...
futex-emulation.cc Loading commit data...
futex-emulation.h Loading commit data...
isolate-data.h Loading commit data...
isolate-inl.h Loading commit data...
isolate.cc Loading commit data...
isolate.h Loading commit data...
message-template.h Loading commit data...
messages.cc Loading commit data...
messages.h Loading commit data...
microtask-queue.cc Loading commit data...
microtask-queue.h Loading commit data...
runtime-profiler.cc Loading commit data...
runtime-profiler.h Loading commit data...
simulator-base.cc Loading commit data...
simulator-base.h Loading commit data...
simulator.h Loading commit data...
thread-id.cc Loading commit data...
thread-id.h Loading commit data...
thread-local-top.cc Loading commit data...
thread-local-top.h Loading commit data...
v8threads.cc Loading commit data...
v8threads.h Loading commit data...
vm-state-inl.h Loading commit data...
vm-state.h Loading commit data...