• J
    Create separate objects for isolate state and isolate group state (#14268) · b7d4278b
    Jason Simmons 提交于
    Isolate data may need to be deleted on the same thread where it was allocated.
    In particular, the task observer set up in the UIDartState ctor must be removed
    from the same message loop where it was added.
    
    The engine had been using the same DartIsolate object as the root isolate data
    and as the isolate group data.  This object would be deleted when the isolate
    group was shut down.  However, group shutdown may occur on a thread associated
    with a secondary isolate.  When this happens, cleanup of any state tied to the
    root isolate's thread will fail.
    
    This change adds a DartIsolateGroupData object holding state that is common
    among all isolates in a group.  DartIsolateGroupData can be deleted on any
    thread.
    
    See https://github.com/flutter/flutter/issues/45578
    b7d4278b
dart_isolate_group_data.h 2.2 KB