From e8548c218f714f14bbf9ae111d8a464419e5606d Mon Sep 17 00:00:00 2001 From: Andrii Chebukin Date: Sun, 24 Mar 2024 02:59:11 +0400 Subject: [PATCH] Switched to rent an array in Giraffe handler --- .../Giraffe/HttpHandlers.fs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/FSharp.Data.GraphQL.Server.AspNetCore/Giraffe/HttpHandlers.fs b/src/FSharp.Data.GraphQL.Server.AspNetCore/Giraffe/HttpHandlers.fs index 6434951af..c1527893d 100644 --- a/src/FSharp.Data.GraphQL.Server.AspNetCore/Giraffe/HttpHandlers.fs +++ b/src/FSharp.Data.GraphQL.Server.AspNetCore/Giraffe/HttpHandlers.fs @@ -1,6 +1,7 @@ namespace FSharp.Data.GraphQL.Server.AspNetCore.Giraffe open System +open System.Buffers open System.IO open System.Text.Json open System.Text.Json.Serialization @@ -154,10 +155,13 @@ module HttpHandlers = else request.EnableBuffering() let body = request.Body - let buffer = Array.zeroCreate 1 - let! bytesRead = body.ReadAsync(buffer, 0, 1) - body.Seek(0, SeekOrigin.Begin) |> ignore - return bytesRead > 0 + let buffer = ArrayPool.Shared.Rent 1 + try + let! bytesRead = body.ReadAsync(buffer, 0, 1) + body.Seek(0, SeekOrigin.Begin) |> ignore + return bytesRead > 0 + finally + ArrayPool.Shared.Return buffer } /// Check if the request is an introspection query