@Override public void release(Block block) { synchronized (this) { Long id = block.getId() ; add(Release, id) ; // Iterator blocks are not released. // if ( !activeReadBlocks.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()) ; } blockMgr.release(block) ; }
@Override public void release(Block block) { synchronized (this) { Long id = block.getId() ; add(Release, id) ; // Iterator blocks are not released. // if ( !activeReadBlocks.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()) ; } blockMgr.release(block) ; }
@Override public void release(Block block) { synchronized (this) { Long id = block.getId() ; add(Release, id) ; // Iterator blocks are not released. // if ( !activeReadBlocks.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()) ; } blockMgr.release(block) ; }
@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) ; }
@Override public void release(Block block) { synchronized (this) { checkRead(Release) ; Long id = block.getId() ; add(Release, id) ; if ( !activeReadBlocks.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()) ; } blockMgr.release(block) ; }
@Override public void release(Block block) { synchronized (this) { checkRead(Release) ; Long id = block.getId() ; add(Release, id) ; if ( !activeReadBlocks.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()) ; } blockMgr.release(block) ; }
@Override public void free(Block block) { synchronized (this) { checkUpdate(Free) ; Long id = block.getId() ; add(Free, id) ; if ( activeReadBlocks.contains(id) ) error(Free, id + " is a read block") ; else if ( !activeWriteBlocks.contains(id) ) error(Free, id + " is not a write block") ; activeWriteBlocks.remove(id) ; } blockMgr.free(block) ; }
@Override public void free(Block block) { synchronized (this) { checkUpdate(Free) ; Long id = block.getId() ; add(Free, id) ; if ( activeReadBlocks.contains(id) ) error(Free, id + " is a read block") ; else if ( !activeWriteBlocks.contains(id) ) error(Free, id + " is not a write block") ; activeWriteBlocks.remove(id) ; } blockMgr.free(block) ; }
@Override public void free(Block block) { synchronized (this) { checkUpdate(Free) ; Long id = block.getId() ; add(Free, id) ; if ( activeReadBlocks.contains(id) ) error(Free, id+" is a read block") ; else if ( ! activeWriteBlocks.contains(id) ) error(Free, id+" is not a write block") ; activeWriteBlocks.remove(id) ; } blockMgr.free(block) ; }
@Override public Block promote(Block block) { synchronized (this) { checkUpdate(Promote) ; Long id = block.getId() ; add(Promote, id) ; if ( !activeWriteBlocks.contains(id) && !activeReadBlocks.contains(id) ) error(Promote, id + " is not an active block") ; while ( activeReadBlocks.contains(id) ) activeReadBlocks.remove(id) ; // Double promotion results in only one entry. if ( !activeWriteBlocks.contains(id) ) activeWriteBlocks.add(id) ; } return blockMgr.promote(block) ; }
@Override public Block promote(Block block) { synchronized (this) { checkUpdate(Promote) ; Long id = block.getId() ; add(Promote, id) ; if ( !activeWriteBlocks.contains(id) && !activeReadBlocks.contains(id) ) error(Promote, id + " is not an active block") ; while ( activeReadBlocks.contains(id) ) activeReadBlocks.remove(id) ; // Double promotion results in only one entry. if ( !activeWriteBlocks.contains(id) ) activeWriteBlocks.add(id) ; } return blockMgr.promote(block) ; }
@Override public Block promote(Block block) { synchronized (this) { checkUpdate(Promote) ; Long id = block.getId() ; add(Promote, id) ; if ( ! activeWriteBlocks.contains(id) && ! activeReadBlocks.contains(id) ) error(Promote, id+" is not an active block") ; if ( activeReadBlocks.contains(id) ) // Remove one read count // Really, do this if obtained via "getRead" and not "getWrite" activeReadBlocks.remove(id) ; // Double promotion results in only one entry. if ( ! activeWriteBlocks.contains(id) ) activeWriteBlocks.add(id) ; } return blockMgr.promote(block) ; }
@Override public Block promote(Block block) { synchronized (this) { checkUpdate(Promote) ; Long id = block.getId() ; add(Promote, id) ; if ( !activeWriteBlocks.contains(id) && !activeReadBlocks.contains(id) ) error(Promote, id + " is not an active block") ; while ( activeReadBlocks.contains(id) ) activeReadBlocks.remove(id) ; // Double promotion results in only one entry. if ( !activeWriteBlocks.contains(id) ) activeWriteBlocks.add(id) ; } return blockMgr.promote(block) ; }
@Override public Block promote(Block block) { synchronized (this) { checkUpdate(Promote) ; Long id = block.getId() ; add(Promote, id) ; if ( !activeWriteBlocks.contains(id) && !activeReadBlocks.contains(id) ) error(Promote, id + " is not an active block") ; if ( activeReadBlocks.contains(id) ) // Remove one read count // Really, do this if obtained via "getRead" and not "getWrite" activeReadBlocks.remove(id) ; // Double promotion results in only one entry. if ( !activeWriteBlocks.contains(id) ) activeWriteBlocks.add(id) ; } return blockMgr.promote(block) ; }
@Override public void free(Block block) { synchronized (this) { checkUpdate(Free) ; Long id = block.getId() ; add(Free, id) ; if ( activeReadBlocks.contains(id) ) warn(Free, id + " is a read block") ; if ( !activeWriteBlocks.contains(id) ) error(Free, id + " is not a write block") ; activeWriteBlocks.remove(id) ; if ( activeWriteBlocks.count(id) != 0 ) warn(Free, id + " has "+activeWriteBlocks.count(id)+" outstanding write registrations") ; } blockMgr.free(block) ; }
@Override public Block promote(Block block) { synchronized (this) { checkUpdate(Promote) ; Long id = block.getId() ; add(Promote, id) ; if ( !activeWriteBlocks.contains(id) && !activeReadBlocks.contains(id) ) error(Promote, id + " is not an active block") ; if ( activeReadBlocks.contains(id) ) // Remove one read count // Really, do this if obtained via "getRead" and not "getWrite" activeReadBlocks.remove(id) ; // Double promotion results in only one entry. if ( !activeWriteBlocks.contains(id) ) activeWriteBlocks.add(id) ; } return blockMgr.promote(block) ; }
@Override public void free(Block block) { synchronized (this) { checkUpdate(Free) ; Long id = block.getId() ; add(Free, id) ; if ( activeReadBlocks.contains(id) ) warn(Free, id + " is a read block") ; if ( !activeWriteBlocks.contains(id) ) error(Free, id + " is not a write block") ; activeWriteBlocks.remove(id) ; if ( activeWriteBlocks.count(id) != 0 ) warn(Free, id + " has "+activeWriteBlocks.count(id)+" outstanding write registrations") ; } blockMgr.free(block) ; }
@Override public void free(Block block) { synchronized (this) { checkUpdate(Free) ; Long id = block.getId() ; add(Free, id) ; if ( activeReadBlocks.contains(id) ) warn(Free, id + " is a read block") ; if ( !activeWriteBlocks.contains(id) ) error(Free, id + " is not a write block") ; activeWriteBlocks.remove(id) ; if ( activeWriteBlocks.count(id) != 0 ) warn(Free, id + " has "+activeWriteBlocks.count(id)+" outstanding write registrations") ; } blockMgr.free(block) ; }