diff options
author | Clombrong <cromblong@egregore.fun> | 2025-06-28 00:53:51 +0200 |
---|---|---|
committer | Clombrong <cromblong@egregore.fun> | 2025-06-28 07:38:36 +0200 |
commit | eba318f64b1378158d0e0ffa6aea03b0ad71a205 (patch) | |
tree | d3974154f9da524d0ee50c650da4e82d47d9ca54 /portal | |
parent | bcc6e7578ff63d4e0f37fbf3d7312e0082bdc98e (diff) |
fix(portal_tcp): create buffer only once in socket_to_stream
Diffstat (limited to 'portal')
-rw-r--r-- | portal/tcp/portal.ml | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/portal/tcp/portal.ml b/portal/tcp/portal.ml index f3c47e4..3b969fc 100644 --- a/portal/tcp/portal.ml +++ b/portal/tcp/portal.ml @@ -74,10 +74,9 @@ let tcp_socket (domain : string) : Lwt_unix.file_descr Lwt.t = Markup signals. *) let socket_to_stream (sock : socket) = let raw_stream = + let buffer = Bytes.create 4096 in Lwt_stream.from (fun () -> - let bsize = 4096 in - let buffer = Bytes.create bsize in - let* len = Lwt_unix.read sock buffer 0 bsize + let* len = Lwt_unix.read sock buffer 0 4096 in match len with | 0 -> Lwt.return_none | len -> Lwt.return_some (Bytes.sub_string buffer 0 len)) |