65 process, ZX_INFO_TASK_STATS, &task_stats,
sizeof(task_stats), NULL, NULL);
76 Dart_IsolateFlags* flags_unused,
78 Dart_SetEmbedderInformationCallback(EmbedderInformationCallback);
80 const uint8_t *vmservice_data =
nullptr, *vmservice_instructions =
nullptr;
82#if defined(AOT_RUNTIME)
84 const char* snapshot_path =
"/pkg/data/vmservice_snapshot.so";
85 if (elf_snapshot.
Load(
nullptr, snapshot_path)) {
88 if (vmservice_data ==
nullptr || vmservice_instructions ==
nullptr) {
93 const char* snapshot_data_path =
94 "/pkg/data/vmservice_isolate_snapshot_data.bin";
95 const char* snapshot_instructions_path =
96 "/pkg/data/vmservice_isolate_snapshot_instructions.bin";
99 const char* snapshot_data_path =
"/pkg/data/isolate_core_snapshot_data.bin";
100 const char* snapshot_instructions_path =
101 "/pkg/data/isolate_core_snapshot_instructions.bin";
105 nullptr, snapshot_data_path, mapped_isolate_snapshot_data)) {
106 *
error = strdup(
"Failed to load snapshot for service isolate");
111 nullptr, snapshot_instructions_path,
112 mapped_isolate_snapshot_instructions,
true )) {
113 *
error = strdup(
"Failed to load snapshot for service isolate");
118 vmservice_data = mapped_isolate_snapshot_data.
address();
119 vmservice_instructions = mapped_isolate_snapshot_instructions.
address();
120#if defined(AOT_RUNTIME)
124 Dart_IsolateFlags flags;
125 Dart_IsolateFlagsInitialize(&flags);
126 flags.null_safety =
true;
129 Dart_Isolate isolate = Dart_CreateIsolateGroup(
130 uri, DART_VM_SERVICE_ISOLATE_NAME, vmservice_data, vmservice_instructions,
131 &flags, state, state,
error);
133 FML_LOG(ERROR) <<
"Dart_CreateIsolateGroup failed: " << *
error;
137 state->get()->SetIsolate(isolate);
142 {
"VMServiceIO_NotifyServerState", NotifyServerState, 1,
true},
143 {
"VMServiceIO_Shutdown", Shutdown, 0,
true},
148 Dart_Handle library =
149 Dart_LookupLibrary(Dart_NewStringFromCString(
"dart:vmservice_io"));
151 Dart_Handle result = Dart_SetRootLibrary(library);
153 result = Dart_SetNativeResolver(library, GetNativeFunction, GetSymbol);
157 result = Dart_SetField(library, Dart_NewStringFromCString(
"_ip"),
158 Dart_NewStringFromCString(
"127.0.0.1"));
162 result = Dart_SetField(library, Dart_NewStringFromCString(
"_port"),
167 result = Dart_SetField(library, Dart_NewStringFromCString(
"_autoStart"),
168 Dart_NewBoolean(
true));
173 Dart_SetField(library, Dart_NewStringFromCString(
"_originCheckDisabled"),
174 Dart_NewBoolean(
false));
179 Dart_SetField(library, Dart_NewStringFromCString(
"_authCodesDisabled"),
180 Dart_NewBoolean(
false));
184 fileno(stderr), zx::channel(),
true);
189 *
error = Dart_IsolateMakeRunnable(isolate);
190 if (*
error !=
nullptr) {
192 Dart_EnterIsolate(isolate);
193 Dart_ShutdownIsolate();
const uint8_t uint32_t uint32_t GError ** error