if (threadIndex == 0)   ScanObject.enumeratePointers(VM_Scheduler.threads, rootEnum);
  public static void computeAllRoots(RootEnumerator rootEnum, 				     AddressDeque rootLocations,  				     AddressPairDeque interiorRootLocations) {    AddressPairDeque codeLocations = MM_Interface.MOVES_OBJECTS ? interiorRootLocations : null;         /* scan statics */    ScanStatics.scanStatics(rootLocations);     /* scan all threads */    while (true) {      int threadIndex = threadCounter.increment();      if (threadIndex >= VM_Scheduler.threads.length) break;      if (threadIndex == 0)  /* the first one scans the threads object too */ 	ScanObject.enumeratePointers(VM_Scheduler.threads, rootEnum);            VM_Thread thread = VM_Scheduler.threads[threadIndex];      if (thread == null) continue;            /* scan the thread (stack etc.) */       ScanThread.scanThread(thread, rootEnum, rootLocations, codeLocations);    }    rendezvous(4200);  }