Reland "[wasm] Refactor callback triggering"
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: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66468}
Showing
Please
register
or
sign in
to comment