docs: protected void markStreamBroken() {
          if(anyAreSet(state, STATE_STREAM_BROKEN)) {
              return;
          }
          synchronized (lock) {
              state |= STATE_STREAM_BROKEN;
              PooledByteBuffer data = this.data;
              if(data != null) {
                  try {
                      data.close(); //may have been closed by the read thread
                  } catch (Throwable e) {
                      //ignore
                  }
                  this.data = null;
              }
              for(FrameData frame : pendingFrameData) {
                  frame.frameData.close();
              }
              pendingFrameData.clear();
              if(isReadResumed()) {
                  resumeReadsInternal(true);
              }
              if (waiters > 0) {
                  lock.notifyAll();
              }
          }
      }