NativeCallable<T extends Function>.isolateGroupBound constructor

NativeCallable<T extends Function>.isolateGroupBound(
  1. @DartRepresentationOf("T") Function callback, {
  2. Object? exceptionalReturn,
})

Constructs a NativeCallable that can be invoked from any thread.

When the native code invokes the function nativeFunction, the callback will be executed within the isolate group of the Isolate which originally constructed the callable. Specifically, this means that an attempt to access any static or global field which is not shared between isolates in a group will result in a Error.

If an exception is thrown by the callback, the native function will return the exceptionalReturn, which must be assignable to the return type of the callback.

callback and exceptionalReturn must be trivially shareable.

This callback must be closed when it is no longer needed. An Isolate that created the callback will be kept alive until close is called.

After NativeCallable.close is called, invoking the nativeFunction from native code will cause undefined behavior.

NOTE: This is an experimental feature and may change in the future.

Implementation

factory NativeCallable.isolateGroupBound(
  @DartRepresentationOf("T") Function callback, {
  Object? exceptionalReturn,
}) {
  throw UnsupportedError("NativeCallable cannot be constructed dynamically.");
}