Merge pull request #31 from ELLIOTTCABLE/try-lwt-over-lwt-catch

Use try%lwt over Lwt.catch
This commit is contained in:
Simon Cruanes 2023-06-23 14:20:06 -04:00 committed by GitHub
commit 67f4f5b9cc
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 20 additions and 16 deletions

View file

@ -32,7 +32,8 @@
(opentelemetry (= :version))
(cohttp-lwt-unix :with-test)
(odoc :with-doc)
(lwt (>= "5.3")))
(lwt (>= "5.3"))
lwt_ppx)
(tags
(instrumentation tracing opentelemetry datadog lwt)))
@ -69,7 +70,7 @@
(pbrt (>= 2.2))
(odoc :with-doc)
(lwt (>= "5.3"))
(lwt_ppx :with-test)
lwt_ppx
cohttp-lwt
cohttp-lwt-unix)
(synopsis "Collector client for opentelemetry, using cohttp + lwt"))

View file

@ -15,7 +15,7 @@ depends: [
"pbrt" {>= "2.2"}
"odoc" {with-doc}
"lwt" {>= "5.3"}
"lwt_ppx" {with-test}
"lwt_ppx"
"cohttp-lwt"
"cohttp-lwt-unix"
]

View file

@ -15,6 +15,7 @@ depends: [
"cohttp-lwt-unix" {with-test}
"odoc" {with-doc}
"lwt" {>= "5.3"}
"lwt_ppx"
]
build: [
["dune" "subst"] {dev}

View file

@ -2,5 +2,6 @@
(name opentelemetry_client_cohttp_lwt)
(public_name opentelemetry-client-cohttp-lwt)
(synopsis "Opentelemetry collector using cohttp+lwt+unix")
(preprocess (pps lwt_ppx))
(libraries opentelemetry lwt cohttp-lwt cohttp-lwt-unix pbrt mtime
mtime.clock.os))

View file

@ -105,11 +105,11 @@ end = struct
let body = Cohttp_lwt.Body.of_string bod in
let* r =
Lwt.catch
(fun () ->
let+ r = Httpc.post ~headers ~body uri in
Ok r)
(fun e -> Lwt.return @@ Error e)
try%lwt
let+ r = Httpc.post ~headers ~body uri in
Ok r
with e ->
Lwt.return @@ Error e
in
match r with
| Error e ->

View file

@ -2,4 +2,6 @@
(name opentelemetry_lwt)
(public_name opentelemetry-lwt)
(synopsis "Lwt frontend for opentelemetry")
(preprocess
(pps lwt_ppx))
(libraries lwt opentelemetry))

View file

@ -47,14 +47,13 @@ module Trace = struct
in
emit ?service_name [ span ]
in
Lwt.catch
(fun () ->
let* x = f scope in
let () = finally (Ok ()) in
Lwt.return x)
(fun e ->
let () = finally (Error (Printexc.to_string e)) in
Lwt.fail e)
try%lwt
let* x = f scope in
let () = finally (Ok ()) in
Lwt.return x
with e ->
let () = finally (Error (Printexc.to_string e)) in
Lwt.fail e
end
module Metrics = struct