This commit is contained in:
parent
aa2ff7b2f0
commit
2f3113f55d
11742 changed files with 1223940 additions and 0 deletions
20
unikernel/duniverse/faraday/lwt_unix/faraday_lwt_unix.ml
Normal file
20
unikernel/duniverse/faraday/lwt_unix/faraday_lwt_unix.ml
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
include Faraday_lwt
|
||||
|
||||
open Lwt.Infix
|
||||
|
||||
let writev_of_fd fd =
|
||||
fun iovecs ->
|
||||
let lwt_iovecs = Lwt_unix.IO_vectors.create () in
|
||||
iovecs |> List.iter (fun {Faraday.buffer; off; len} ->
|
||||
Lwt_unix.IO_vectors.append_bigarray lwt_iovecs buffer off len);
|
||||
|
||||
Lwt.catch
|
||||
(fun () ->
|
||||
Lwt_unix.writev fd lwt_iovecs
|
||||
>|= fun n -> `Ok n)
|
||||
(function
|
||||
| Unix.Unix_error (Unix.EBADF, "check_descriptor", _)
|
||||
| Unix.Unix_error (Unix.EPIPE, _, _) ->
|
||||
Lwt.return `Closed
|
||||
| exn ->
|
||||
Lwt.fail exn)
|
||||
Loading…
Add table
Add a link
Reference in a new issue