-
Clemens Backes authored
We constantly fight against scrambled output with --print-wasm-code and other flags. Passing --single-threaded only partially mitigates this, because there could still be multiple isolates (e.g. Workers), and we sometimes failed to really execute in a single thread if that flag was set. Hence this CL solves the problem in a more fundamental way: Whenever a {StdoutStream} is constructed, it implicitly takes a global recursive mutex. The recursive mutex is needed because we still have some printing methods that don't take a stream as parameter, and instead create their own instance of {StdoutStream}, which should not crash of course. The overhead of taking a mutex should be acceptable, since output to stdout mostly happens if special tracing flags have been passed, and is slow anyway. This CL ensures that the {StdoutStream} is used at least for --print-code, --print-wasm-code, and --trace-turbo-graph. More flags can later be ported on demand. The {JSHeapBroker} class was modified to not contain a {StdoutStream}, but instead create one on demand. R=mlippautz@chromium.org, tebbi@chromium.org CC=ahaas@chromium.org Bug: v8:10506 Change-Id: Ib9cf8d76aa79553b4215bb7775e6d47a8179aafa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2201767Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#67855}
a0687c71