7a20b6b9d3
The Factory/OffThreadFactory allows us to cleanly separate object construction behaviour between main-thread and off-thread in a syntactically consistent way (so that methods templated on the factory type can be made to work on both). However, there are cases where we also have to access the Isolate, for handle creation or exception throwing. So far we have been pushing more and more "customization points" into the factories to allow these factory-templated methods to dispatch on this isolate behaviour via these factory methods. Unfortunately, this is an increasing layering violation between Factory and Isolate, particularly around exception handling. Now, we introduce an OffThreadIsolate, analogous to Isolate in the same way as OffThreadFactory is analogous to Factory. All methods which were templated on Factory are now templated on Isolate, and methods which used to take an Isolate, and which were recently changed to take a templated Factory, are changed/reverted to take a templated Isolate. OffThreadFactory gets an isolate() method to match Factory's. Notably, FactoryHandle is changed to "HandleFor", where the template argument can be either of the Isolate type or the Factory type (allowing us to dispatch on both depending on what is available). Bug: chromium:1011762 Change-Id: Id144176f7da534dd76f3d535ab2ade008b6845e3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2030909 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#66101} |
||
---|---|---|
.. | ||
bytecode-array-builder-unittest.cc | ||
bytecode-array-iterator-unittest.cc | ||
bytecode-array-random-iterator-unittest.cc | ||
bytecode-array-writer-unittest.cc | ||
bytecode-decoder-unittest.cc | ||
bytecode-node-unittest.cc | ||
bytecode-operands-unittest.cc | ||
bytecode-register-allocator-unittest.cc | ||
bytecode-register-optimizer-unittest.cc | ||
bytecode-source-info-unittest.cc | ||
bytecode-utils.h | ||
bytecodes-unittest.cc | ||
constant-array-builder-unittest.cc | ||
interpreter-assembler-unittest.cc | ||
interpreter-assembler-unittest.h |