• Clemens Backes's avatar
    Reland "[wasm] Refactor callback triggering" · 9a96f1bb
    Clemens Backes authored
    This is a reland of 0dc598df
    
    Original change's description:
    > [wasm] Refactor callback triggering
    > 
    > 1) Instead of passing three boolean values to |TriggerCallbacks|, pass
    >    one EnumSet which contains all events to trigger.
    > 2) Remember which events already happened, to avoid triggering them
    >    again.
    > 3) Compute triggered events once after the loop in |OnFinishedUnits|,
    >    instead of checking for every finished unit.
    > 4) When a new callback is registered, trigger all previous events
    >    immediately. This solves issue v8:10217.
    > 5) Replace |NotifyTopTierReady| by |AddCallback| which is identical now.
    > 6) Do not call |OnFinishedJSToWasmWrapperUnits| if no wrappers were
    >    compiled (this is a minor performance optimization; we save taking
    >    and releasing a lock).
    > 7) Drive-by: Make the |EnumSet| constructor really constexpr (by making
    >    |Mask| constexpr).
    > 
    > R=ahaas@chromium.org
    > 
    > Bug: v8:10217
    > Change-Id: Ib3688a1687ad7b523e90efd73f4073e9f1193016
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2072737
    > Commit-Queue: Clemens Backes <clemensb@chromium.org>
    > Reviewed-by: Andreas Haas <ahaas@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#66459}
    
    Bug: v8:10217
    Change-Id: I9f7ca424fa7f1d0379dabe230bebf62522dfc857
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2074501Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
    Commit-Queue: Clemens Backes <clemensb@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#66468}
    9a96f1bb
enum-set.h 2.69 KB