if (order == 1) { int count = 0; for (int i=0; i<planCount; i++) { Plan p = (Plan) plans[i]; if (VM_Interface.isNonParticipating(p)) { count++; p.threadLocalRelease(NON_PARTICIPANT); } } if (verbose >= 3) VM.sysWriteln("  There were ", count, " non-participating GC threads"); }
  protected final void release() {    int order = VM_CollectorThread.gcBarrier.rendezvous();    if (verbose > 3) VM.sysWriteln("  Preparing all collector threads for termination");    threadLocalRelease(order);    order = VM_CollectorThread.gcBarrier.rendezvous();    if (order == 1)      baseGlobalRelease();    VM_CollectorThread.gcBarrier.rendezvous();    threadLocalReset();    VM_CollectorThread.gcBarrier.rendezvous();  }