boolean tryToReclaimAll(@NotNull PagesTable pagesTable) {
    pagesTable.pagesLock().lock();      //RC: Do we need a lock here really?
    try {
      AtomicReferenceArray<PageImpl> pages = pagesTable.pages();
      boolean somePagesStillInUse = false;
      for (int i = 0; i < pages.length(); i++) {
        PageImpl page = pages.get(i);
        if (page == null || page.isTombstone()) {
          continue;
        }

        boolean succeed = page.tryMoveTowardsPreTombstone(/*entombYoung: */true);
        if (succeed) {
          if (page.pageBufferUnchecked() != null) {
            unmapPageAndReclaimBuffer(page);
          }
          else {//If we just entomb NOT_READY_YET page => it has .data=null
            page.entomb();
          }
        }

        //if !TOMBSTONE => wait till next time, hope the page will be released eventually
        somePagesStillInUse |= !page.isTombstone();
      }
      return somePagesStillInUse;
    }
    finally {
      pagesTable.pagesLock().unlock();
    }
  }
boolean tryToReclaimAll(@NotNull PagesTable pagesTable)