docs: @Override
  	public MemorySegment getNextReturnedBlock() throws IOException {
  		try {
  			while (true) {
  				final MemorySegment next = returnSegments.poll(1000, TimeUnit.MILLISECONDS);
  				if (next != null) {
  					return next;
  				} else {
  					if (this.closed) {
  						throw new IOException("The writer has been closed.");
  					}
  					checkErroneous();
  				}
  			}
  		} catch (InterruptedException e) {
  			throw new IOException("Writer was interrupted while waiting for the next returning segment.");
  		}
  	}