@Override public void waitForGC(){
  boolean allWaiting;
synchronized (count) {
    mutatorsBlocked++;
    allWaiting=allWaitingForGC();
  }
  waitForGC(allWaiting,true);
synchronized (count) {
    mutatorsBlocked--;
  }
}

@ Override public void waitForGC ( ) { boolean allWaiting ; synchronized ( count ) { mutatorsBlocked ++ ; allWaiting = allWaitingForGC ( ) ; } waitForGC ( allWaiting , true ) ; synchronized ( count ) { mutatorsBlocked -- ; } }
mutator thread calls this if it wants to block until the next gc is complete
