-
Andreas Haas authored
With eager compilation, CompilationEventCallbacks get released when all compilation units in the compilation state are finished. This is possible because no future compilation event could get triggered after that. With dynamic tiering, though, the {FinishedCompilationChunk} event can trigger repeatedly, even after all compilation units finish at some point in time, as dynamic tiering can create new CompilationUnits. As a temporary fix, CompilationEventCallbacks don't get released when dynamic tiering is enabled. This CL fixes this issue by turning the callback from an std::function into a class, and adding a second function to the class which indicates whether the callback can be released when all compilation units in the compilation state are finished. Thereby all callbacks can be deallocated except the ones like the code caching callback which waits for the {FinishedCompilationChunk} events. R=jkummerow@chromium.org Bug: v8:12289 Change-Id: I0f73f4bd2dffe644c9a26c274cb52ac6fa49ab67 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3264288 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#77890}
0e6eb3e2