@Override
    public final ChannelFuture doWriteReset(int id, int streamId, Http2Error error) {
        // NB: this.minClosedId can be overwritten more than once when 3+ pipelined requests are received
        //     and they are handled by different threads simultaneously.
        //     e.g. when the 3rd request triggers a reset and then the 2nd one triggers another.
        updateClosedId(id);

        if (minClosedId <= maxIdWithPendingWrites) {
            final ClosedSessionException cause =
                    new ClosedSessionException("An HTTP/1 connection has been reset: " + error);
            for (int i = minClosedId; i <= maxIdWithPendingWrites; i++) {
                final PendingWrites pendingWrites = pendingWritesMap.remove(i);
                for (;;) {
                    final Entry<HttpObject, ChannelPromise> e = pendingWrites.poll();
                    if (e == null) {
                        break;
                    }

                    e.getValue().tryFailure(cause);
                }
            }
        }

        final ChannelFuture f = ch.write(Unpooled.EMPTY_BUFFER);
        if (!isWritable(currentId)) {
            f.addListener(ChannelFutureListener.CLOSE);
        }

        return f;
    }
The map which maps a request ID to its related pending response.
core/src/main/java/com/linecorp/armeria/internal/common/Http1ObjectEncoder.java