/// <summary> /// The stream is out of scope for the HTTP message flow and will no longer be tracked /// </summary> /// <param name="stream">The stream to remove associated state with</param> /// <param name="release"><c>true</c> to call release on the value if it is present. <c>false</c> to not call release.</param> protected void RemoveMessage(IHttp2Stream stream, bool release) { IFullHttpMessage msg = stream.RemoveProperty <IFullHttpMessage>(_messageKey); if (release && msg is object) { _ = msg.Release(); } }
/// <summary> /// Release remaining content from <see cref="EmbeddedChannel"/> and remove the compressor from the <see cref="IHttp2Stream"/>. /// </summary> /// <param name="stream">The stream for which <paramref name="compressor"/> is the compressor for</param> /// <param name="compressor">The compressor for <paramref name="stream"/></param> void Cleanup(IHttp2Stream stream, EmbeddedChannel compressor) { _ = compressor.FinishAndReleaseAll(); _ = stream.RemoveProperty(_propertyKey); }