66 process, ZX_INFO_TASK_STATS, &task_stats,
sizeof(task_stats), NULL, NULL);
77 Dart_IsolateFlags* flags_unused,
79 Dart_SetEmbedderInformationCallback(EmbedderInformationCallback);
81 const uint8_t *vmservice_data =
nullptr, *vmservice_instructions =
nullptr;
83#if defined(AOT_RUNTIME)
85 const char* snapshot_path =
"/pkg/data/vmservice_snapshot.so";
86 if (elf_snapshot.
Load(
nullptr, snapshot_path)) {
89 if (vmservice_data ==
nullptr || vmservice_instructions ==
nullptr) {
94 const char* snapshot_data_path =
95 "/pkg/data/vmservice_isolate_snapshot_data.bin";
96 const char* snapshot_instructions_path =
97 "/pkg/data/vmservice_isolate_snapshot_instructions.bin";
100 const char* snapshot_data_path =
"/pkg/data/isolate_core_snapshot_data.bin";
101 const char* snapshot_instructions_path =
102 "/pkg/data/isolate_core_snapshot_instructions.bin";
106 nullptr, snapshot_data_path, mapped_isolate_snapshot_data)) {
107 *
error = strdup(
"Failed to load snapshot for service isolate");
112 nullptr, snapshot_instructions_path,
113 mapped_isolate_snapshot_instructions,
true )) {
114 *
error = strdup(
"Failed to load snapshot for service isolate");
119 vmservice_data = mapped_isolate_snapshot_data.
address();
120 vmservice_instructions = mapped_isolate_snapshot_instructions.
address();
121#if defined(AOT_RUNTIME)
125 Dart_IsolateFlags flags;
126 Dart_IsolateFlagsInitialize(&flags);
127 flags.null_safety =
true;
130 Dart_Isolate isolate = Dart_CreateIsolateGroup(
131 uri, DART_VM_SERVICE_ISOLATE_NAME, vmservice_data, vmservice_instructions,
132 &flags, state, state,
error);
134 FML_LOG(ERROR) <<
"Dart_CreateIsolateGroup failed: " << *
error;
138 state->get()->SetIsolate(isolate);
143 {
"VMServiceIO_NotifyServerState", NotifyServerState, 1,
true},
144 {
"VMServiceIO_Shutdown", Shutdown, 0,
true},
149 Dart_Handle library =
150 Dart_LookupLibrary(Dart_NewStringFromCString(
"dart:vmservice_io"));
152 Dart_Handle result = Dart_SetRootLibrary(library);
154 result = Dart_SetNativeResolver(library, GetNativeFunction, GetSymbol);
158 result = Dart_SetField(library, Dart_NewStringFromCString(
"_ip"),
159 Dart_NewStringFromCString(
"127.0.0.1"));
163 result = Dart_SetField(library, Dart_NewStringFromCString(
"_port"),
168 result = Dart_SetField(library, Dart_NewStringFromCString(
"_autoStart"),
169 Dart_NewBoolean(
true));
174 Dart_SetField(library, Dart_NewStringFromCString(
"_originCheckDisabled"),
175 Dart_NewBoolean(
false));
180 Dart_SetField(library, Dart_NewStringFromCString(
"_authCodesDisabled"),
181 Dart_NewBoolean(
false));
185 fileno(stderr), zx::channel(),
true);
190 *
error = Dart_IsolateMakeRunnable(isolate);
191 if (*
error !=
nullptr) {
193 Dart_EnterIsolate(isolate);
194 Dart_ShutdownIsolate();
const uint8_t uint32_t uint32_t GError ** error