Return SocketInput blocks out of lock
This commit is contained in:
parent
388841c1d8
commit
0e8cbe5df6
|
|
@ -174,12 +174,12 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Http
|
|||
public void ConsumingComplete(
|
||||
MemoryPoolIterator consumed,
|
||||
MemoryPoolIterator examined)
|
||||
{
|
||||
lock (_sync)
|
||||
{
|
||||
MemoryPoolBlock returnStart = null;
|
||||
MemoryPoolBlock returnEnd = null;
|
||||
|
||||
lock (_sync)
|
||||
{
|
||||
if (!consumed.IsDefault)
|
||||
{
|
||||
returnStart = _head;
|
||||
|
|
@ -200,6 +200,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Http
|
|||
_awaitableIsNotCompleted,
|
||||
_awaitableIsCompleted);
|
||||
}
|
||||
}
|
||||
|
||||
while (returnStart != returnEnd)
|
||||
{
|
||||
|
|
@ -213,7 +214,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Http
|
|||
throw new InvalidOperationException("No ongoing consuming operation to complete.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void CompleteAwaiting()
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue