Compare commits

..

1 commit

Author SHA1 Message Date
Simon Cruanes
944a579a8f
Merge 01cdb66f1f into 213d9bdd19 2025-05-05 01:19:20 +00:00
3 changed files with 2 additions and 18 deletions

View file

@ -15,8 +15,6 @@ let make () =
fut, fut fut, fut
let[@inline] return x : _ t = C.returned x let[@inline] return x : _ t = C.returned x
let[@inline] cancel x ebt = C.cancel x (fst ebt) (snd ebt)
let[@inline] try_cancel x ebt = C.try_cancel x (fst ebt) (snd ebt)
let[@inline] fail exn bt : _ t = let[@inline] fail exn bt : _ t =
let fut = C.create () in let fut = C.create () in

View file

@ -51,15 +51,6 @@ val on_result_ignore : _ t -> (Exn_bt.t option -> unit) -> unit
exception Already_fulfilled exception Already_fulfilled
val try_cancel : _ promise -> Exn_bt.t -> bool
(** [try_cancel promise ebt] tries to cancel the promise, returning [true]. It
returns [false] if the promise is already resolved.
@since NEXT_RELEASE *)
val cancel : _ promise -> Exn_bt.t -> unit
(** Silent version of {!try_cancel}, ignoring the result.
@since NEXT_RELEASE *)
val fulfill : 'a promise -> 'a or_error -> unit val fulfill : 'a promise -> 'a or_error -> unit
(** Fullfill the promise, setting the future at the same time. (** Fullfill the promise, setting the future at the same time.
@raise Already_fulfilled if the promise is already fulfilled. *) @raise Already_fulfilled if the promise is already fulfilled. *)

View file

@ -39,10 +39,6 @@ let[@inline] discontinue k exn =
let bt = Printexc.get_raw_backtrace () in let bt = Printexc.get_raw_backtrace () in
Effect.Deep.discontinue_with_backtrace k exn bt Effect.Deep.discontinue_with_backtrace k exn bt
let[@inline] raise_with_bt exn =
let bt = Printexc.get_raw_backtrace () in
Printexc.raise_with_backtrace exn bt
let with_handler (type st arg) ~(ops : st ops) (self : st) : let with_handler (type st arg) ~(ops : st ops) (self : st) :
(unit -> unit) -> unit = (unit -> unit) -> unit =
let current = let current =
@ -97,7 +93,7 @@ let with_handler (type st arg) ~(ops : st ops) (self : st) :
discontinue k exn) discontinue k exn)
| _ -> None | _ -> None
in in
let handler = Effect.Deep.{ retc = Fun.id; exnc = raise_with_bt; effc } in let handler = Effect.Deep.{ retc = Fun.id; exnc = raise; effc } in
fun f -> Effect.Deep.match_with f () handler fun f -> Effect.Deep.match_with f () handler
[@@@else_] [@@@else_]
@ -149,8 +145,7 @@ let worker_loop (type st) ~block_signals ~(ops : st ops) (self : st) : unit =
(* this is already in an effect handler *) (* this is already in an effect handler *)
k () k ()
with e -> with e ->
let bt = Printexc.get_raw_backtrace () in let ebt = Exn_bt.get e in
let ebt = Exn_bt.make e bt in
ops.on_exn self ebt); ops.on_exn self ebt);
after_task runner _ctx; after_task runner _ctx;