WebAssembly / shared-everything-threads

A draft proposal for spawning threads in WebAssembly
Other
44 stars 1 forks source link

Design doc for collecting shared-to-unshared edges #79

Open tlively opened 3 months ago

tlively commented 3 months ago

As promised, here is a link to the design doc the V8 GC team wrote on how we would be able to support collecting cycles involving shared-to-unshared cycles: https://docs.google.com/document/d/1GoIWdfsKuKb0PS3gSF8b1U0RoHs5ALPzXAMx-QPHHNg/edit#heading=h.g227de93gbi

The current plan is to not prototype this right away, and instead initially support collecting cycles with shared-to-unshared edges only when those edges are to unshared objects on the main thread. This subset of the full capability does not require any heroics in our GC because the main thread "owns" the shared heap and is already responsible for doing GC on it along with its own unshared heap.