Merge branch 'release/2.1' into dev
This commit is contained in:
commit
aa9b9ca724
|
|
@ -145,6 +145,13 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
|
|||
return _requestStream.ReadAsync(buffer, offset, count, cancellationToken);
|
||||
}
|
||||
|
||||
#if NETCOREAPP2_1
|
||||
public override ValueTask<int> ReadAsync(Memory<byte> destination, CancellationToken cancellationToken = default)
|
||||
{
|
||||
return _requestStream.ReadAsync(destination, cancellationToken);
|
||||
}
|
||||
#endif
|
||||
|
||||
public override Task CopyToAsync(Stream destination, int bufferSize, CancellationToken cancellationToken)
|
||||
{
|
||||
return _requestStream.CopyToAsync(destination, bufferSize, cancellationToken);
|
||||
|
|
@ -155,6 +162,13 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
|
|||
return _responseStream.WriteAsync(buffer, offset, count, cancellationToken);
|
||||
}
|
||||
|
||||
#if NETCOREAPP2_1
|
||||
public override ValueTask WriteAsync(ReadOnlyMemory<byte> source, CancellationToken cancellationToken = default)
|
||||
{
|
||||
return _responseStream.WriteAsync(source, cancellationToken);
|
||||
}
|
||||
#endif
|
||||
|
||||
public override long Seek(long offset, SeekOrigin origin)
|
||||
{
|
||||
return _requestStream.Seek(offset, origin);
|
||||
|
|
|
|||
|
|
@ -68,6 +68,11 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure
|
|||
public override Task<int> ReadAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
|
||||
=> _inner.ReadAsync(buffer, offset, count, cancellationToken);
|
||||
|
||||
#if NETCOREAPP2_1
|
||||
public override ValueTask<int> ReadAsync(Memory<byte> destination, CancellationToken cancellationToken = default)
|
||||
=> _inner.ReadAsync(destination, cancellationToken);
|
||||
#endif
|
||||
|
||||
public override int ReadByte()
|
||||
=> _inner.ReadByte();
|
||||
|
||||
|
|
@ -83,6 +88,11 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure
|
|||
public override Task WriteAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
|
||||
=> _inner.WriteAsync(buffer, offset, count, cancellationToken);
|
||||
|
||||
#if NETCOREAPP2_1
|
||||
public override ValueTask WriteAsync(ReadOnlyMemory<byte> source, CancellationToken cancellationToken = default)
|
||||
=> _inner.WriteAsync(source, cancellationToken);
|
||||
#endif
|
||||
|
||||
public override void WriteByte(byte value)
|
||||
=> _inner.WriteByte(value);
|
||||
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal
|
|||
internal sealed class SocketConnection : TransportConnection, IDisposable
|
||||
{
|
||||
private static readonly int MinAllocBufferSize = KestrelMemoryPool.MinimumSegmentSize / 2;
|
||||
private static readonly bool IsWindows = RuntimeInformation.IsOSPlatform(OSPlatform.Windows);
|
||||
|
||||
private readonly Socket _socket;
|
||||
private readonly PipeScheduler _scheduler;
|
||||
|
|
@ -54,8 +55,13 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal
|
|||
|
||||
ConnectionClosed = _connectionClosedTokenSource.Token;
|
||||
|
||||
_receiver = new SocketReceiver(_socket, _scheduler);
|
||||
_sender = new SocketSender(_socket, _scheduler);
|
||||
// On *nix platforms, Sockets already dispatches to the ThreadPool.
|
||||
// Yes, the IOQueues are still used for the PipeSchedulers. This is intentional.
|
||||
// https://github.com/aspnet/KestrelHttpServer/issues/2573
|
||||
var awaiterScheduler = IsWindows ? _scheduler : PipeScheduler.Inline;
|
||||
|
||||
_receiver = new SocketReceiver(_socket, awaiterScheduler);
|
||||
_sender = new SocketSender(_socket, awaiterScheduler);
|
||||
}
|
||||
|
||||
public override MemoryPool<byte> MemoryPool { get; }
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets
|
|||
= new ResourceManager("Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.SocketsStrings", typeof(SocketsStrings).GetTypeInfo().Assembly);
|
||||
|
||||
/// <summary>
|
||||
/// Only ListenType.IPEndPoint is supported.
|
||||
/// Only ListenType.IPEndPoint is supported by the Socket Transport. https://go.microsoft.com/fwlink/?linkid=874850
|
||||
/// </summary>
|
||||
internal static string OnlyIPEndPointsSupported
|
||||
{
|
||||
|
|
@ -19,7 +19,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Only ListenType.IPEndPoint is supported.
|
||||
/// Only ListenType.IPEndPoint is supported by the Socket Transport. https://go.microsoft.com/fwlink/?linkid=874850
|
||||
/// </summary>
|
||||
internal static string FormatOnlyIPEndPointsSupported()
|
||||
=> GetString("OnlyIPEndPointsSupported");
|
||||
|
|
|
|||
|
|
@ -118,7 +118,7 @@
|
|||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="OnlyIPEndPointsSupported" xml:space="preserve">
|
||||
<value>Only ListenType.IPEndPoint is supported.</value>
|
||||
<value>Only ListenType.IPEndPoint is supported by the Socket Transport. https://go.microsoft.com/fwlink/?linkid=874850</value>
|
||||
</data>
|
||||
<data name="TransportAlreadyBound" xml:space="preserve">
|
||||
<value>Transport is already bound.</value>
|
||||
|
|
|
|||
Loading…
Reference in New Issue