[heap] Introduce new ThreadState with flags
Change ThreadState representation from a fixed set of values to either Parked or Running with two additional flags (or bits) that are used when either a collection or a safepoint requested. Setting either of these flags forces Park(), Unpark() and Safepoint() into their slow path. Currently we use the CollectionRequested flag on the main thread, while SafepointRequested is used on background threads. In case the slow path sees the CollectionRequested flag, it will perform a GC. When encountering the SafepointRequested flag, the background thread will participate in the safepoint protocol and park itself for the duration of the safepoint operation. This CL is a prerequisite for supporting safepoints across multiple isolates. When safepointing multiple isolates, the main thread will use both the CollectionRequested and SafepointRequested flag. This isn't possible with the current system. Design Doc: https://docs.google.com/document/d/1y6C9zAACEr0sBYMIYk3YpXosnkF3Ak4CEuWJu1-3zXs/edit?usp=sharing Bug: v8:11708 Change-Id: I16b88740182d9c13bce54be163b334761529a5f0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3211894Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#77349}
Showing
Please
register
or
sign in
to comment