code: final void ensureNumBuffersReturned(final int minRequiredAvailable) {
  		if (minRequiredAvailable > this.availableMemory.size() + this.writeBehindBuffersAvailable) {
  			throw new IllegalArgumentException("More buffers requested available than totally available.");
  		}
  		
  		try {
  			while (this.availableMemory.size() < minRequiredAvailable) {
  				this.availableMemory.add(this.writeBehindBuffers.take());
  				this.writeBehindBuffersAvailable--;
  			}
  		}
  		catch (InterruptedException iex) {
  			throw new RuntimeException("Hash Join was interrupted.");
  		}
  	}
docs: This method makes sure that at least a certain number of memory segments is in the list of free segments.
  Free memory can be in the list of free segments, or in the return-queue where segments used to write behind are
  put. The number of segments that are in that return-queue, but are actually reclaimable is tracked. This method
  makes sure at least a certain number of buffers is reclaimed.
  
  @param minRequiredAvailable The minimum number of buffers that needs to be reclaimed.