code: protected final int doWrite0(ChannelOutboundBuffer in) throws Exception {
          Object msg = in.current();
          if (msg == null) {
              // Directly return here so incompleteWrite(...) is not called.
              return 0;
          }
          return doWriteInternal(in, in.current());
      }
docs: Write objects to the OS.
  @param in the collection which contains objects to write.
  @return The value that should be decremented from the write quantum which starts at
  {@link ChannelConfig#getWriteSpinCount()}. The typical use cases are as follows:
  <ul>
  <li>0 - if no write was attempted. This is appropriate if an empty {@link ByteBuf} (or other empty content)
  is encountered</li>
  <li>1 - if a single call to write data was made to the OS</li>
  <li>{@link ChannelUtils#WRITE_STATUS_SNDBUF_FULL} - if an attempt to write data was made to the OS, but no
  data was accepted</li>
  </ul>
  @throws Exception if an I/O exception occurs during write.