commit | 179a1770d2570066005458ca52d1bc5b4b536140 | [log] [tgz] |
---|---|---|
author | Hossein Yousefi <yousefi@google.com> | Tue Apr 02 20:06:06 2024 +0200 |
committer | GitHub <noreply@github.com> | Tue Apr 02 20:06:06 2024 +0200 |
tree | aae8caa6940c0c8d439f74b6f3c0be9c47f09bc3 | |
parent | b2a0ffec061f7a99749aee6d777ef43d4ed368d7 [diff] |
Enable sharing `JObject`s across isolates (#1060) We use a `FinalizableHandle` which is for an entire isolate group as opposed to a `NativeFinalizer` which belongs to a single isolate. This way we can use `@pragma('vm:deeply-immutable')` on `JReference` to share the reference object between multiple isolates while the finalizable handle takes care of the global reference deletion. The guarantees we provide: * use-after-free will throw from Dart * use-on-isolate-b-after-free-on-isolate-a will throw from Dart * double-free will throw from Dart * free-on-isolate-b-after-free-on-isolate-a will throw from Dart In general, if we're not eagerly freeing via `.release()`, things work.
This repository is home to Dart packages related to FFI and native assets building and bundling.
Package | Description | Version |
---|---|---|
ffi | Utilities for working with Foreign Function Interface (FFI) code. | |
ffigen | Generator for FFI bindings, using LibClang to parse C, Objective-C, and Swift files. | |
jni | A library to access JNI from Dart and Flutter that acts as a support library for package:jnigen . | |
jnigen | A Dart bindings generator for Java and Kotlin that uses JNI under the hood to interop with Java virtual machine. | |
native_assets_builder | This package is the backend that invokes build hooks. | |
native_assets_cli | A library that contains the argument and file formats for implementing a native assets CLI. | |
native_toolchain_c | A library to invoke the native C compiler installed on the host machine. |
For information about our publishing automation and release process, see https://github.com/dart-lang/ecosystem/wiki/Publishing-automation.
For additional information about contributing, see our contributing page.