public final class ControllerThread extends SystemThread
Modifier and Type | Field and Description |
---|---|
private DynamicCallGraphOrganizer |
dcgOrg
There are several ways in which a dcg organizer might
be created; keep track of it once it is created so that
we only create one instance of it.
|
private SoftLatch |
sentinel |
rvmThread
Constructor and Description |
---|
ControllerThread(SoftLatch sentinel)
constructor
|
Modifier and Type | Method and Description |
---|---|
void |
aboutToWait()
Called when the controller thread is about to wait on
Controller.controllerInputQueue
|
private void |
controllerInitDone() |
private void |
createCompilationThread()
Creates and schedules the compilationThread.
|
private void |
createDynamicCallGraphOrganizer()
Create a dynamic call graph organizer of one doesn't already exist
|
private void |
createOrganizerThreads()
Create the organizerThreads and schedule them
|
private void |
createProfilers()
Create profiling entities that are independent of whether or not
adaptive recompilation is actually enabled.
|
void |
doneWaiting()
Called when the controller thread is woken after waiting on
Controller.controllerInputQueue
|
boolean |
earlyRestrictOptLevels()
If we're going to be gathering a dynamic call graph, then we don't
want to let the opt compiler compile anything above O0 until we have
some initial data in the call graph to work with.
|
static void |
report()
Final report
|
void |
run()
This method is the entry point to the controller, it is called when
the controllerThread is created.
|
getRVMThread, start, stop
private DynamicCallGraphOrganizer dcgOrg
ControllerThread(SoftLatch sentinel)
sentinel
- An object to signal when up and runningpublic void run()
run
in class SystemThread
private void controllerInitDone()
public void aboutToWait()
public void doneWaiting()
public boolean earlyRestrictOptLevels()
true
if we need to restrict the optimization levels
to ensure that we don't make bad optimization decisions, false
if no restriction is necessaryprivate void createCompilationThread()
private void createDynamicCallGraphOrganizer()
private void createProfilers()
private void createOrganizerThreads()
public static void report()