diff --git a/build/dependencies.props b/build/dependencies.props index db44bbd005..bcef3e3761 100644 --- a/build/dependencies.props +++ b/build/dependencies.props @@ -7,8 +7,8 @@ 0.10.13 2.1.0-preview2-15749 1.10.0 - 2.1.0-preview2-30478 - 2.1.0-preview2-30478 + 2.1.0-a-preview2-mpr-16443 + 2.1.0-a-preview2-mpr-16443 2.1.0-preview2-30478 2.1.0-preview2-30478 2.1.0-preview2-30478 @@ -17,8 +17,8 @@ 2.1.0-preview2-30478 2.1.0-preview2-30478 2.1.0-preview2-30478 - 2.1.0-preview2-30478 - 2.1.0-preview2-30478 + 2.1.0-a-preview2-mpr-16443 + 2.1.0-a-preview2-mpr-16443 2.1.0-preview2-30478 2.1.0-preview2-30478 2.1.0-preview2-30478 @@ -28,18 +28,18 @@ 2.1.0-preview2-30478 2.1.0-preview2-30478 2.0.0 - 2.1.0-preview2-26326-03 + 2.1.0-preview3-26331-01 2.1.0-preview2-30478 15.6.1 4.7.49 11.0.2 - 4.5.0-preview2-26326-04 - 4.5.0-preview2-26326-04 - 4.5.0-preview2-26326-04 - 4.5.0-preview2-26326-04 - 4.5.0-preview2-26326-04 - 4.5.0-preview2-26326-04 - 4.5.0-preview2-26326-04 + 4.5.0-preview3-26331-02 + 4.5.0-preview3-26331-02 + 4.5.0-preview3-26331-02 + 4.5.0-preview3-26331-02 + 4.5.0-preview3-26331-02 + 4.5.0-preview3-26331-02 + 4.5.0-preview3-26331-02 0.8.0 2.3.1 2.4.0-beta.1.build3945 diff --git a/src/Directory.Build.props b/src/Directory.Build.props index a1676ede80..6b85b2cf04 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -6,4 +6,8 @@ + + + false + diff --git a/src/Kestrel.Transport.Libuv/Internal/LibuvConnection.cs b/src/Kestrel.Transport.Libuv/Internal/LibuvConnection.cs index b6295aa568..116b67e39c 100644 --- a/src/Kestrel.Transport.Libuv/Internal/LibuvConnection.cs +++ b/src/Kestrel.Transport.Libuv/Internal/LibuvConnection.cs @@ -106,7 +106,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal private unsafe LibuvFunctions.uv_buf_t OnAlloc(UvStreamHandle handle, int suggestedSize) { var currentWritableBuffer = Input.GetMemory(MinAllocBufferSize); - _bufferHandle = currentWritableBuffer.Retain(true); + _bufferHandle = currentWritableBuffer.Pin(); return handle.Libuv.buf_init((IntPtr)_bufferHandle.Pointer, currentWritableBuffer.Length); } @@ -118,6 +118,8 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal private void OnRead(UvStreamHandle handle, int status) { + // Cleanup state from last OnAlloc. This is safe even if OnAlloc wasn't called. + _bufferHandle.Dispose(); if (status == 0) { // EAGAIN/EWOULDBLOCK so just return the buffer. @@ -168,9 +170,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal // Complete after aborting the connection Input.Complete(error); } - - // Cleanup state from last OnAlloc. This is safe even if OnAlloc wasn't called. - _bufferHandle.Dispose(); } private async Task ApplyBackpressureAsync(ValueTask flushTask) diff --git a/src/Kestrel.Transport.Libuv/Internal/Networking/UvWriteReq.cs b/src/Kestrel.Transport.Libuv/Internal/Networking/UvWriteReq.cs index 9a635ba5cc..e28c318616 100644 --- a/src/Kestrel.Transport.Libuv/Internal/Networking/UvWriteReq.cs +++ b/src/Kestrel.Transport.Libuv/Internal/Networking/UvWriteReq.cs @@ -94,7 +94,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Networkin if (nBuffers == 1) { var memory = buffer.First; - var memoryHandle = memory.Retain(true); + var memoryHandle = memory.Pin(); _handles.Add(memoryHandle); // Fast path for single buffer @@ -108,7 +108,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Networkin foreach (var memory in buffer) { // This won't actually pin the buffer since we're already using pinned memory - var memoryHandle = memory.Retain(true); + var memoryHandle = memory.Pin(); _handles.Add(memoryHandle); // create and pin each segment being written