From d1221e82c1da69b676de7b3e349e7ed9308927f7 Mon Sep 17 00:00:00 2001 From: Nick Craver Date: Tue, 10 Nov 2015 22:58:19 -0500 Subject: [PATCH 1/2] Pass cancellation tokens down consistently I'm assuming these are oversights since the usage is inconsistent. Otherwise this served only as a mild waste of time :) --- src/Microsoft.AspNet.Server.Kestrel/Filter/LibuvStream.cs | 2 +- src/Microsoft.AspNet.Server.Kestrel/Http/Frame.cs | 2 +- src/Microsoft.AspNet.Server.Kestrel/Http/FrameRequestStream.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Microsoft.AspNet.Server.Kestrel/Filter/LibuvStream.cs b/src/Microsoft.AspNet.Server.Kestrel/Filter/LibuvStream.cs index 16f3ce2c1b..4f63195760 100644 --- a/src/Microsoft.AspNet.Server.Kestrel/Filter/LibuvStream.cs +++ b/src/Microsoft.AspNet.Server.Kestrel/Filter/LibuvStream.cs @@ -75,7 +75,7 @@ namespace Microsoft.AspNet.Server.Kestrel.Filter public override Task WriteAsync(byte[] buffer, int offset, int count, CancellationToken token) { var segment = new ArraySegment(buffer, offset, count); - return _output.WriteAsync(segment); + return _output.WriteAsync(segment, cancellationToken: token); } public override void Flush() diff --git a/src/Microsoft.AspNet.Server.Kestrel/Http/Frame.cs b/src/Microsoft.AspNet.Server.Kestrel/Http/Frame.cs index 36f1d92319..c08d0eb684 100644 --- a/src/Microsoft.AspNet.Server.Kestrel/Http/Frame.cs +++ b/src/Microsoft.AspNet.Server.Kestrel/Http/Frame.cs @@ -349,7 +349,7 @@ namespace Microsoft.AspNet.Server.Kestrel.Http public async Task FlushAsync(CancellationToken cancellationToken) { await ProduceStartAndFireOnStarting(immediate: false); - await SocketOutput.WriteAsync(_emptyData, immediate: true); + await SocketOutput.WriteAsync(_emptyData, immediate: true, cancellationToken: cancellationToken); } public void Write(ArraySegment data) diff --git a/src/Microsoft.AspNet.Server.Kestrel/Http/FrameRequestStream.cs b/src/Microsoft.AspNet.Server.Kestrel/Http/FrameRequestStream.cs index 714728dd43..b0fed05f09 100644 --- a/src/Microsoft.AspNet.Server.Kestrel/Http/FrameRequestStream.cs +++ b/src/Microsoft.AspNet.Server.Kestrel/Http/FrameRequestStream.cs @@ -94,7 +94,7 @@ namespace Microsoft.AspNet.Server.Kestrel.Http { tcs2.SetResult(task2.Result); } - }, tcs); + }, tcs, cancellationToken); return tcs.Task; } From a45a671b2253ac40df7652af0b52b26dc3a13bfa Mon Sep 17 00:00:00 2001 From: Nick Craver Date: Wed, 11 Nov 2015 18:55:56 -0500 Subject: [PATCH 2/2] Make ReadAsync state overload 451 only and private. --- .../Http/FrameRequestStream.cs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Microsoft.AspNet.Server.Kestrel/Http/FrameRequestStream.cs b/src/Microsoft.AspNet.Server.Kestrel/Http/FrameRequestStream.cs index b0fed05f09..706ee8bf11 100644 --- a/src/Microsoft.AspNet.Server.Kestrel/Http/FrameRequestStream.cs +++ b/src/Microsoft.AspNet.Server.Kestrel/Http/FrameRequestStream.cs @@ -68,14 +68,8 @@ namespace Microsoft.AspNet.Server.Kestrel.Http { return ((Task)asyncResult).Result; } -#endif - public override Task ReadAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken) - { - return _body.ReadAsync(new ArraySegment(buffer, offset, count), cancellationToken); - } - - public Task ReadAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken, object state) + private Task ReadAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken, object state) { var tcs = new TaskCompletionSource(state); var task = _body.ReadAsync(new ArraySegment(buffer, offset, count), cancellationToken); @@ -97,6 +91,12 @@ namespace Microsoft.AspNet.Server.Kestrel.Http }, tcs, cancellationToken); return tcs.Task; } +#endif + + public override Task ReadAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken) + { + return _body.ReadAsync(new ArraySegment(buffer, offset, count), cancellationToken); + } public override void Write(byte[] buffer, int offset, int count) {