Joyee Cheung d58f474b2d
deps: V8: backport 954187bb1b87
Original commit message:

    [api] add Isolate::Deinitialize() and Isolate::Free()

    This allows embedders to mirror the isolate disposal routine
    with an initialization routine that uses Isolate::Allocate().

    ```
    v8::Isolate* isolate = v8::Isolate::Allocate();
    // Use the isolate address as a key.
    v8::Isolate::Initialize(isolate, params);

    isolate->Deinitialize();
    // Remove the entry keyed by isolate address.
    v8::Isolate::Free(isolate);
    ```

    Previously, the only way to dispose the isolate bundles the
    de-initialization and the freeing of the address together in
    v8::Isolate::Dispose(). This is inadequate for embedders like
    Node.js that uses the isolate address as a key to manage the
    task runner associated with it, if another thread gets an
    isolate allocated at the aligned address before the other
    thread finishes cleanup for the isolate previously allocated
    at the same address, and locking on the entire disposal can
    be too risky since it may post GC tasks that in turn requires
    using the isolate address to locate the task runner. It's a
    lot simpler to handle the issue if the disposal process of
    the isolate can mirror the initialization of it and split
    into two routines.

    Refs: https://github.com/nodejs/node/pull/57753#issuecomment-2818999420
    Refs: https://github.com/nodejs/node/issues/30850
    Bug: 412943769
    Change-Id: I3865c27395aded3a6f32de74d96d0698b2d891b9
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6480071
    Reviewed-by: Leszek Swirski <leszeks@chromium.org>
    Commit-Queue: Joyee Cheung <joyee@igalia.com>
    Cr-Commit-Position: refs/heads/main@{#99890}

Refs: 954187bb1b
PR-URL: https://github.com/nodejs/node/pull/58070
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
2025-05-02 15:10:33 +02:00
..
2025-05-02 15:06:53 +02:00
2025-05-02 15:06:53 +02:00
2025-05-02 15:06:53 +02:00
2025-05-02 15:06:53 +02:00
2025-05-02 15:06:53 +02:00
2025-05-02 15:06:53 +02:00
2025-05-02 15:06:53 +02:00
2024-03-31 15:36:07 +02:00
2025-05-02 15:06:53 +02:00
2025-05-02 15:06:53 +02:00
2025-05-02 15:06:53 +02:00
2024-08-16 16:03:01 +02:00
2025-05-02 15:06:53 +02:00
2025-05-02 15:06:53 +02:00
2024-04-19 08:39:47 +00:00
2025-05-02 15:06:53 +02:00
2025-05-02 15:06:53 +02:00
2025-05-02 15:06:53 +02:00
2025-05-02 15:10:33 +02:00
2025-05-02 15:06:53 +02:00
2025-05-02 15:06:53 +02:00
2025-05-02 15:06:53 +02:00
2025-05-02 15:06:53 +02:00
2025-05-02 15:06:53 +02:00
2025-05-02 15:06:53 +02:00
2025-05-02 15:06:53 +02:00
2025-05-02 15:06:53 +02:00
2024-08-16 16:03:01 +02:00
2025-05-02 15:06:53 +02:00
2025-05-02 15:06:53 +02:00
2025-05-02 15:06:53 +02:00
2025-05-02 15:06:53 +02:00
2024-08-16 16:03:01 +02:00
2024-04-22 21:25:15 +00:00
2025-05-02 15:06:53 +02:00
2025-05-02 15:06:53 +02:00
2024-08-16 16:03:01 +02:00
2024-09-19 14:25:34 +00:00
2025-05-02 15:06:53 +02:00
2025-05-02 15:06:53 +02:00
2025-05-02 15:06:53 +02:00
2025-05-02 15:06:53 +02:00