347 {
349#if defined(SUPPORT_TIMELINE)
350 TimelineBeginEndScope tbes(Timeline::GetVMStream(),
351 "ServiceIsolateStartup");
352#endif
353 char*
error =
nullptr;
354 Isolate* isolate = nullptr;
355
357 ASSERT(create_group_callback !=
nullptr);
358
363 isolate = reinterpret_cast<Isolate*>(
365 nullptr,
nullptr, &api_flags,
nullptr, &
error));
366 if (isolate == nullptr) {
367 if (FLAG_trace_service) {
369 ": Isolate creation error: %s\n",
371 }
372
374 nullptr, "Invoking the 'create_group' failed with: '%s'",
376
380 return;
381 }
382
383 bool got_unwind;
384 {
386 StartIsolateScope start_scope(isolate);
388 }
389
390
391
392
394
395 if (got_unwind) {
397 return;
398 }
399
400 isolate->message_handler()->Run(isolate->group()->thread_pool(), nullptr,
402 reinterpret_cast<uword>(isolate));
403 }
static Isolate * Current()
static void FlagsInitialize(Dart_IsolateFlags *api_flags)
static void static void PrintErr(const char *format,...) PRINTF_ATTRIBUTE(1
static char * SCreate(Zone *zone, const char *format,...) PRINTF_ATTRIBUTE(2
static void ShutdownIsolate(uword parameter)
static const char * kName
static void FinishedInitializing()
static Dart_IsolateGroupCreateCallback create_group_callback()
static void InitializingFailed(char *error)
#define DART_VM_SERVICE_ISOLATE_NAME
const uint8_t uint32_t uint32_t GError ** error