예제 #1
0
 /**
  * Find a bucket to allocate a block
  *
  * @return the offset in the IOEngine
  */
 public long allocateBlock() {
   Bucket b = null;
   if (freeBuckets.size() > 0) // Use up an existing one first...
   b = freeBuckets.get(freeBuckets.size() - 1);
   if (b == null) {
     b = grabGlobalCompletelyFreeBucket();
     if (b != null) instantiateBucket(b);
   }
   if (b == null) return -1;
   long result = b.allocate();
   blockAllocated(b);
   return result;
 }