[wasm][serialization] Use Jobs to avoid blocking
We did spawn exactly one task for each of copy&reloc and publishing. Those tasks did block until work is available. This can block background threads which could otherwise execute other component's work. Switching to the Job API allows us to easily avoid that blocking, and just respawning a task when more work is available. Is always avoid code duplication for participating in the work in the main thread. Instead we just {Join()} the existing job, which makes the current thread participate in work. For now, both Jobs set a maximum concurrency of one, so the main thread will only do work if no background thread is currently running. This can be lifted in a follow-up CL to see the performance impact of both changes independently. R=thibaudm@chromium.org Bug: v8:11164 Change-Id: I032153eb933648a750b113f5d766feb85b87070a Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2643393Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72288}
Showing
Please
register
or
sign in
to comment