fullHeapGC = mustCollect || heapFull || fullHeapGC;
int nurseryYield = ((int)((float) nurseryMR.committedPages() * SURVIVAL_ESTIMATE))<<1; fullHeapGC = mustCollect || (nurseryYield < required) || fullHeapGC;
  public final boolean poll(boolean mustCollect, MemoryResource mr)     throws VM_PragmaLogicallyUninterruptible {    if (gcInProgress) return false;    mustCollect |= stressTestGCRequired();    boolean heapFull = getPagesReserved() > getTotalPages();    boolean nurseryFull = nurseryMR.reservedPages() > Options.nurseryPages;    if (mustCollect || heapFull || nurseryFull) {      if (VM.VerifyAssertions)    VM._assert(mr != metaDataMR);      required = mr.reservedPages() - mr.committedPages();      if (mr == nurseryMR || (Plan.copyMature && (mr == matureMR)))	required = required<<1;  // must account for copy reserve      fullHeapGC = mustCollect || heapFull || fullHeapGC;      VM_Interface.triggerCollection(VM_Interface.RESOURCE_TRIGGERED_GC);      return true;    }    return false;  }