Merge branch 'release/2.2'
This commit is contained in:
commit
c9a1a42410
|
|
@ -50,6 +50,6 @@
|
||||||
<XunitPackageVersion>2.3.1</XunitPackageVersion>
|
<XunitPackageVersion>2.3.1</XunitPackageVersion>
|
||||||
<XunitRunnerVisualStudioPackageVersion>2.4.0</XunitRunnerVisualStudioPackageVersion>
|
<XunitRunnerVisualStudioPackageVersion>2.4.0</XunitRunnerVisualStudioPackageVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Label="Package Versions: Pinned" />
|
|
||||||
<Import Project="$(DotNetPackageVersionPropsPath)" Condition=" '$(DotNetPackageVersionPropsPath)' != '' " />
|
<Import Project="$(DotNetPackageVersionPropsPath)" Condition=" '$(DotNetPackageVersionPropsPath)' != '' " />
|
||||||
|
<PropertyGroup Label="Package Versions: Pinned" />
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal
|
||||||
{
|
{
|
||||||
private static readonly int MinAllocBufferSize = KestrelMemoryPool.MinimumSegmentSize / 2;
|
private static readonly int MinAllocBufferSize = KestrelMemoryPool.MinimumSegmentSize / 2;
|
||||||
private static readonly bool IsWindows = RuntimeInformation.IsOSPlatform(OSPlatform.Windows);
|
private static readonly bool IsWindows = RuntimeInformation.IsOSPlatform(OSPlatform.Windows);
|
||||||
|
private static readonly bool IsMacOS = RuntimeInformation.IsOSPlatform(OSPlatform.OSX);
|
||||||
|
|
||||||
private readonly Socket _socket;
|
private readonly Socket _socket;
|
||||||
private readonly PipeScheduler _scheduler;
|
private readonly PipeScheduler _scheduler;
|
||||||
|
|
@ -164,6 +165,13 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal
|
||||||
{
|
{
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
|
// MacOS blocked on https://github.com/dotnet/corefx/issues/31766
|
||||||
|
if (!IsMacOS)
|
||||||
|
{
|
||||||
|
// Wait for data before allocating a buffer.
|
||||||
|
await _receiver.WaitForDataAsync();
|
||||||
|
}
|
||||||
|
|
||||||
// Ensure we have some reasonable amount of buffer space
|
// Ensure we have some reasonable amount of buffer space
|
||||||
var buffer = Input.GetMemory(MinAllocBufferSize);
|
var buffer = Input.GetMemory(MinAllocBufferSize);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,18 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SocketAwaitableEventArgs WaitForDataAsync()
|
||||||
|
{
|
||||||
|
_awaitableEventArgs.SetBuffer(Array.Empty<byte>(), 0, 0);
|
||||||
|
|
||||||
|
if (!_socket.ReceiveAsync(_awaitableEventArgs))
|
||||||
|
{
|
||||||
|
_awaitableEventArgs.Complete();
|
||||||
|
}
|
||||||
|
|
||||||
|
return _awaitableEventArgs;
|
||||||
|
}
|
||||||
|
|
||||||
public SocketAwaitableEventArgs ReceiveAsync(Memory<byte> buffer)
|
public SocketAwaitableEventArgs ReceiveAsync(Memory<byte> buffer)
|
||||||
{
|
{
|
||||||
#if NETCOREAPP2_1
|
#if NETCOREAPP2_1
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue