54 {
56#ifdef SUPPORT_TIMELINE
57 TimelineBeginEndScope tbes(Timeline::GetVMStream(), "KernelIsolateStartup");
58#endif
59 char*
error =
nullptr;
60 Isolate* isolate = nullptr;
61
64 ASSERT(create_group_callback !=
nullptr);
65
66
67
74#if !defined(DART_PRECOMPILER)
76#endif
77#if !defined(DART_PRECOMPILER)
79#endif
80
81 isolate = reinterpret_cast<Isolate*>(
83 nullptr,
nullptr, &api_flags,
nullptr, &
error));
84 if (isolate == nullptr) {
85 if (FLAG_trace_kernel) {
88 }
93 return;
94 }
95
96 bool got_unwind;
97 {
99 StartIsolateScope start_scope(isolate);
101 }
103
104 if (got_unwind) {
106 return;
107 }
108
109
110 ASSERT(isolate->is_kernel_isolate());
111
112 isolate->message_handler()->Run(isolate->group()->thread_pool(), nullptr,
114 reinterpret_cast<uword>(isolate));
115 }
static Isolate * Current()
static void FlagsInitialize(Dart_IsolateFlags *api_flags)
static void InitializingFailed()
static void FinishedInitializing()
static Dart_IsolateGroupCreateCallback create_group_callback()
static void SetKernelIsolate(Isolate *isolate)
static const char * kName
static void static void PrintErr(const char *format,...) PRINTF_ATTRIBUTE(1
static void ShutdownIsolate(uword parameter)
Dart_Isolate(* Dart_IsolateGroupCreateCallback)(const char *script_uri, const char *main, const char *package_root, const char *package_config, Dart_IsolateFlags *flags, void *isolate_data, char **error)
#define DART_KERNEL_ISOLATE_NAME
const uint8_t uint32_t uint32_t GError ** error