public boolean acquire(){
  int[] stamp=new int[1];
  while (true) {
    boolean undeployed=usage.get(stamp);
    int r=stamp[0];
    if (undeployed && r == 0)     return false;
    if (usage.compareAndSet(undeployed,undeployed,r,r + 1))     return true;
  }
}

public boolean acquire ( ) { int [ ] stamp = new int [ 1 ] ; while ( true ) { boolean undeployed = usage . get ( stamp ) ; int r = stamp [ 0 ] ; if ( undeployed && r == 0 ) return false ; if ( usage . compareAndSet ( undeployed , undeployed , r , r + 1 ) ) return true ; } }
increments usage count for deployment . if deployment is undeployed , then usage count is not incremented .
