startAsync method
Implementation
Future<void> startAsync(
String uuid,
String jsonConfig, {
Map<String, String> env = const {},
}) async {
final uuidPtr = StringUtf8Pointer(uuid).toNativeUtf8();
final cfgPtr = StringUtf8Pointer(jsonConfig).toNativeUtf8();
final start = _startPtr.asFunction<_StartDart>();
final setEnv = _setEnvPtr.asFunction<_SetEnvDart>();
final freeMemory = _freeMemoryPtr.asFunction<_FreeMemoryDart>();
try {
_getTransferMessage(
await Isolate.run(() {
for (final entry in env.entries) {
final keyPtr = entry.key.toNativeUtf8();
final valuePtr = entry.value.toNativeUtf8();
try {
_parseTransferWithFree(
setEnv(keyPtr, valuePtr),
freeMemory,
throwOnError: true,
);
} finally {
calloc.free(keyPtr);
calloc.free(valuePtr);
}
}
return start(uuidPtr, cfgPtr);
}),
);
} finally {
calloc.free(uuidPtr);
calloc.free(cfgPtr);
}
}