code: public SynchronizationPoint<IOException> onDone() {
  		synchronized (buffers) {
  			if (writing == null) return new SynchronizationPoint<>(true);
  			if (writing.hasError()) return new SynchronizationPoint<IOException>(writing.getError());
  			if (writing.isCancelled()) return new SynchronizationPoint<IOException>(writing.getCancelEvent());
  			if (waitDone == null) waitDone = new SynchronizationPoint<>();
  		}
  		return waitDone;
  	}
docs: Must be called once all write operations have been done, and only one time.