public bool TryQueueNewStream(SafeMsQuicStreamHandle streamHandle, QUIC_STREAM_OPEN_FLAGS flags) { var stream = new MsQuicStream(this, streamHandle, flags); if (AcceptQueue.Writer.TryWrite(stream)) { return(true); } else { stream.Dispose(); return(false); } }
private async ValueTask <MsQuicStream> OpenStreamAsync(QUIC_STREAM_OPEN_FLAGS flags, CancellationToken cancellationToken) { ThrowIfDisposed(); if (!Connected) { throw new InvalidOperationException(SR.net_quic_not_connected); } var stream = new MsQuicStream(_state, flags); try { await stream.StartAsync(cancellationToken).ConfigureAwait(false); } catch { stream.Dispose(); throw; } return(stream); }