MCPcopy Create free account
hub / github.com/ReadyTalk/avian / runThread

Method runThread

src/classpath-openjdk.cpp:582–611  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

580 }
581
582 virtual void runThread(Thread* t)
583 {
584 // force monitor creation so we don't get an OutOfMemory error
585 // later when we try to acquire it:
586 objectMonitor(t, t->javaThread, true);
587
588 THREAD_RESOURCE0(t, {
589 vm::acquire(t, t->javaThread);
590 t->clearFlag(Thread::ActiveFlag);
591 vm::notifyAll(t, t->javaThread);
592 vm::release(t, t->javaThread);
593
594 GcThrowable* e = t->exception;
595 PROTECT(t, e);
596
597 t->exception = 0;
598
599 t->m->processor->invoke(t,
600 cast<GcMethod>(t, roots(t)->threadTerminated()),
601 t->javaThread->group(),
602 t->javaThread);
603
604 t->exception = e;
605 });
606
607 GcMethod* method = resolveMethod(
608 t, roots(t)->bootLoader(), "java/lang/Thread", "run", "()V");
609
610 t->m->processor->invoke(t, method, t->javaThread);
611 }
612
613 virtual void resolveNative(Thread* t, GcMethod* method)
614 {

Callers

nothing calls this directly

Calls 9

objectMonitorFunction · 0.85
notifyAllFunction · 0.85
rootsFunction · 0.85
clearFlagMethod · 0.80
resolveMethodFunction · 0.70
invokeMethod · 0.65
acquireFunction · 0.50
releaseFunction · 0.50
groupMethod · 0.45

Tested by

no test coverage detected