public ValueTask <FlushResult> FlushAsync(IHttpOutputAborter outputAborter, CancellationToken cancellationToken) { lock (_writeLock) { if (_completed) { return(default);
public Task FlushAsync(IHttpOutputAborter outputAborter, CancellationToken cancellationToken) { lock (_writeLock) { if (_completed) { return(Task.CompletedTask); } return(_flusher.FlushAsync(outputAborter, cancellationToken)); } }
public Task FlushAsync(IHttpOutputAborter outputAborter, CancellationToken cancellationToken) { lock (_writeLock) { if (_completed) { return(Task.CompletedTask); } var bytesWritten = _unflushedBytes; _unflushedBytes = 0; return(_flusher.FlushAsync(_minResponseDataRate, bytesWritten, outputAborter, cancellationToken)); } }
public Http1OutputProducer( PipeWriter pipeWriter, string connectionId, ConnectionContext connectionContext, MemoryPool <byte> memoryPool, IKestrelTrace log, ITimeoutControl timeoutControl, IHttpMinResponseDataRateFeature minResponseDataRateFeature, IHttpOutputAborter outputAborter) { // Allow appending more data to the PipeWriter when a flush is pending. _pipeWriter = new ConcurrentPipeWriter(pipeWriter, memoryPool, _contextLock); _connectionId = connectionId; _connectionContext = connectionContext; _memoryPool = memoryPool; _log = log; _minResponseDataRateFeature = minResponseDataRateFeature; _outputAborter = outputAborter; _flusher = new TimingPipeFlusher(_pipeWriter, timeoutControl, log); }
public TestHttpOutputProducer(Pipe pipe, string connectionId, ConnectionContext connectionContext, MemoryPool <byte> memoryPool, IKestrelTrace log, ITimeoutControl timeoutControl, IHttpMinResponseDataRateFeature minResponseDataRateFeature, IHttpOutputAborter outputAborter) : base(pipe.Writer, connectionId, connectionContext, memoryPool, log, timeoutControl, minResponseDataRateFeature, outputAborter) { Pipe = pipe; }