Make_client.IO
catch f
is f () >|= Result.ok
, unless f
fails with an IO error, in which case it returns the error.
val pp_error : Stdlib.Format.formatter -> error -> unit
wait_eof_or_closed conn ic sleep_fn
waits for an EOF or a Closed status on the input channel ic
. This function is designed to be used in Lwt.pick
to run concurrently with the request handling from the input channel. The function checks for EOF using MSG_PEEK
on the input channel without consuming data, thereby not disturbing the request handling. If the connection is closed locally, Cohttp will stop waiting for EOF and will wait the promise to be cancelled. This function ensures that the monitoring does not spin too quickly and uses CPU efficiently when the input channel has read activity but the client is not reading it.
sleep_fn
is a parameter function used to yield control periodically, keeping Cohttp platform-independent.