@Override public void close() { // make sure that we close only once synchronized (stateLock) { if (closed) { // We have to do this here, because the ctor already allocates a segment to the record area and // the staging area, even before we are opened. So we might have segments to free, even if we // are closed. recordArea.giveBackSegments(); freeMemorySegments.addAll(stagingSegments); stagingSegments.clear(); return; } closed = true; } LOG.debug("Closing InPlaceMutableHashTable and releasing resources."); releaseBucketSegments(); recordArea.giveBackSegments(); freeMemorySegments.addAll(stagingSegments); stagingSegments.clear(); numElements = 0; holes = 0; }
@Override public void close() { // make sure that we close only once synchronized (stateLock) { if (closed) { // We have to do this here, because the ctor already allocates a segment to the record area and // the staging area, even before we are opened. So we might have segments to free, even if we // are closed. recordArea.giveBackSegments(); freeMemorySegments.addAll(stagingSegments); stagingSegments.clear(); return; } closed = true; } LOG.debug("Closing InPlaceMutableHashTable and releasing resources."); releaseBucketSegments(); recordArea.giveBackSegments(); freeMemorySegments.addAll(stagingSegments); stagingSegments.clear(); numElements = 0; holes = 0; }
@Override public void close() { // make sure that we close only once synchronized (stateLock) { if (closed) { // We have to do this here, because the ctor already allocates a segment to the record area and // the staging area, even before we are opened. So we might have segments to free, even if we // are closed. recordArea.giveBackSegments(); freeMemorySegments.addAll(stagingSegments); stagingSegments.clear(); return; } closed = true; } LOG.debug("Closing InPlaceMutableHashTable and releasing resources."); releaseBucketSegments(); recordArea.giveBackSegments(); freeMemorySegments.addAll(stagingSegments); stagingSegments.clear(); numElements = 0; holes = 0; }
@Override public void close() { // make sure that we close only once synchronized (stateLock) { if (closed) { // We have to do this here, because the ctor already allocates a segment to the record area and // the staging area, even before we are opened. So we might have segments to free, even if we // are closed. recordArea.giveBackSegments(); freeMemorySegments.addAll(stagingSegments); stagingSegments.clear(); return; } closed = true; } LOG.debug("Closing InPlaceMutableHashTable and releasing resources."); releaseBucketSegments(); recordArea.giveBackSegments(); freeMemorySegments.addAll(stagingSegments); stagingSegments.clear(); numElements = 0; holes = 0; }