util_mutex.ml
opentelemetry
opentelemetry.ambient-context
opentelemetry.atomic
opentelemetry.core
opentelemetry.domain
opentelemetry.emitter
opentelemetry.proto
opentelemetry.util
1 2 3 4 5 6 7 8 9 10 11 12 (* Mutex.protect was added in OCaml 5.1, but we want support back to 4.08 *) (* cannot inline, otherwise flambda might move code around. (as per Stdlib) *) let[@inline never] protect m f = Mutex.lock m; match f () with | x -> Mutex.unlock m; x | exception e -> (* NOTE: [unlock] does not poll for asynchronous exceptions *) Mutex.unlock m; Printexc.raise_with_backtrace e (Printexc.get_raw_backtrace ())
1 2 3 4 5 6 7 8 9 10 11 12
(* Mutex.protect was added in OCaml 5.1, but we want support back to 4.08 *) (* cannot inline, otherwise flambda might move code around. (as per Stdlib) *) let[@inline never] protect m f = Mutex.lock m; match f () with | x -> Mutex.unlock m; x | exception e -> (* NOTE: [unlock] does not poll for asynchronous exceptions *) Mutex.unlock m; Printexc.raise_with_backtrace e (Printexc.get_raw_backtrace ())