// Notify barrier set of the current (main) thread. Normally the // Thread constructor deals with this, but the main thread is // created before we get here. Verify it isn't yet on the thread // list, else we'd also need to call BarrierSet::on_thread_attach. // This is the only thread that can exist at this point; the Thread // constructor objects to other threads being created before the // barrier set is available.
assert(Thread::current()->is_Java_thread(), "Expected main thread to be a JavaThread");
assert(!JavaThread::current()->on_thread_list(), "Main thread already on thread list.");
_barrier_set->on_thread_create(Thread::current());
}
static BarrierSetNMethod* select_barrier_set_nmethod(BarrierSetNMethod* barrier_set_nmethod) { if (barrier_set_nmethod != NULL) { // The GC needs nmethod entry barriers to do concurrent GC return barrier_set_nmethod;
} else { // The GC needs nmethod entry barriers to deal with continuations // and code cache unloading return NOT_ARM32(new BarrierSetNMethod()) ARM32_ONLY(nullptr);
}
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.