code: public final SelectableChannel configureBlocking(boolean block)
          throws IOException
      {
          synchronized (regLock) {
              if (!isOpen())
                  throw new ClosedChannelException();
              if (blocking == block)
                  return this;
              if (block && haveValidKeys())
                  throw new IllegalBlockingModeException();
              implConfigureBlocking(block);
              blocking = block;
          }
          return this;
      }
docs: Adjusts this channel's blocking mode.
  
  <p> If the given blocking mode is different from the current blocking
  mode then this method invokes the {@link #implConfigureBlocking
  implConfigureBlocking} method, while holding the appropriate locks, in
  order to change the mode.  </p>