code: private void endBlocking(boolean completed) throws AsynchronousCloseException {
      synchronized (blockingThreads) {
        blockingThreads.remove(Thread.currentThread());
      }
      end(completed);
    }
docs: Ends a blocking operation, throwing an exception if the thread was interrupted while blocking
  or if the channel was closed from another thread.