VM_Processor.getCurrentProcessor().scheduleThread(o);
o.start();
  private void createOrganizerThreads() {    VM_AOSOptions opts = VM_Controller.options;    // Primary backing store for method sample data    VM_Controller.methodSamples = new VM_MethodCountData();    // Select organizers to drive method recompilation     int filterOptLevel = opts.ADAPTIVE_RECOMPILATION ?       opts.FILTER_OPT_LEVEL : opts.DEFAULT_OPT_LEVEL;    VM_Organizer methodOrganizer = null;    if (opts.windowing()) {      VM_BasicMethodListener methodListener = 	new VM_BasicMethodListener(opts.INITIAL_SAMPLE_SIZE);      methodOrganizer = 	new VM_MethodSampleOrganizer(methodListener, filterOptLevel);    } else if (opts.windowingWithHistory()) {      VM_BasicMethodListener methodListener = 	new VM_BasicMethodListener(opts.INITIAL_SAMPLE_SIZE);      methodOrganizer = 	new VM_SlopeDetectingMethodSampleOrganizer(methodListener,						   filterOptLevel,						   opts.MSO_ADJUST_BOUNDS,						   opts.MSO_NUM_EPOCHS);    } else {      VM.sysFail("Unimplemented selection of method organizer");    }    VM_Controller.organizers.addElement(methodOrganizer);    // Decay runtime measurement data     if (opts.ADAPTIVE_INLINING) {      VM_Organizer decayOrganizer = 	new VM_DecayOrganizer(new VM_YieldCounterListener(opts.DECAY_FREQUENCY));      VM_Controller.organizers.addElement(decayOrganizer);    }        if (opts.ADAPTIVE_INLINING) {      VM_Organizer AIOrganizer = 	new VM_AIByEdgeOrganizer(new VM_EdgeListener());      VM_Controller.organizers.addElement(AIOrganizer);    }    for (Enumeration e = VM_Controller.organizers.elements(); 	 e.hasMoreElements(); ) {      VM_Organizer o = (VM_Organizer)e.nextElement();      o.makeDaemon(true);      VM_Processor.getCurrentProcessor().scheduleThread(o);    }  }