1125 {
1129 {
1131 StackZone stack_zone(thread);
1132 Zone* zone = stack_zone.GetZone();
1135 QueueElement* element = nullptr;
1136 {
1137 SafepointMonitorLocker ml(&monitor_);
1141 }
1142 }
1143 if (element != nullptr) {
1144 delete element;
1147
1148
1149
1151 FLAG_stress_test_background_compilation) {
1153 SafepointMonitorLocker ml(&monitor_);
1154 if (running_) {
1155 QueueElement* repeat_qelem =
new QueueElement(
function);
1157 }
1158 }
1159 }
1160 }
1161 }
1163 {
1164 MonitorLocker ml(&monitor_);
1167
1168 } else {
1169
1170
1171
1172 running_ = false;
1173 done_ = true;
1174 ml.NotifyAll();
1175 }
1176 }
1177}
static bool CanOptimizeFunction(Thread *thread, const Function &function)
static constexpr intptr_t kNoOSRDeoptId
static ObjectPtr CompileOptimizedFunction(Thread *thread, const Function &function, intptr_t osr_id=kNoOSRDeoptId)
static void ExitIsolateGroupAsHelper(bool bypass_safepoint)
static bool EnterIsolateGroupAsHelper(IsolateGroup *isolate_group, TaskKind kind, bool bypass_safepoint)
#define HANDLESCOPE(thread)
bool EMSCRIPTEN_KEEPALIVE IsEmpty(const SkPath &path)