示例#1
0
  @Override
  public void release(Block block) {
    synchronized (this) {
      checkReadOrIter(Release);
      Long id = block.getId();
      add(Release, id);

      if (!activeReadBlocks.contains(id)
          && !activeIterBlocks.contains(id)
          && !activeWriteBlocks.contains(id)) error(Release, id + " is not an active block");

      // May have been promoted.
      if (activeWriteBlocks.contains(id)) activeWriteBlocks.remove(id);
      else activeReadBlocks.remove(block.getId());

      activeIterBlocks.remove(block.getId());
    }
    blockMgr.release(block);
  }