[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}
Showing
Please
register
or
sign in
to comment