docs: protected void queueFrame(final S channel) throws IOException {
          assert !newFrames.contains(channel);
          if (isWritesBroken() || !this.channel.getSinkChannel().isOpen() || channel.isBroken() || !channel.isOpen()) {
              IoUtils.safeClose(channel);
              throw UndertowMessages.MESSAGES.channelIsClosed();
          }
          newFrames.add(channel);
  
          if (!requireExplicitFlush || channel.isBufferFull()) {
              flush();
          }
      }