docs: @Override
      public void close() throws IOException {
          if (isClosed) {
              return;
          }
          flush(sendEor);
          if (sendClose) {
              eventPipeline.fire(new Close(), channel);
          }
          isClosed = true;
      }