fib: expose Fiber.Private_.create

This commit is contained in:
Simon Cruanes 2024-03-06 23:43:52 -05:00
parent 82cfe5413e
commit d4476f7f31
No known key found for this signature in database
GPG key ID: EBFFF6F283F3A2B4
2 changed files with 18 additions and 13 deletions

View file

@ -40,9 +40,6 @@ module Private_ = struct
match A.get self.state with match A.get self.state with
| Alive _ -> false | Alive _ -> false
| Terminating_or_done _ -> true | Terminating_or_done _ -> true
end
include Private_
let create_ ~ls ~runner () : 'a t = let create_ ~ls ~runner () : 'a t =
let id = Handle.generate_fresh () in let id = Handle.generate_fresh () in
@ -50,13 +47,20 @@ let create_ ~ls ~runner () : 'a t =
{ {
state = state =
A.make A.make
@@ Alive { children = FM.empty; on_cancel = Int_map.empty; cancel_id = 0 }; @@ Alive
{ children = FM.empty; on_cancel = Int_map.empty; cancel_id = 0 };
id; id;
res; res;
runner; runner;
ls; ls;
} }
let create ~runner () : _ t =
create_ ~ls:(Task_local_storage.Direct.create ()) ~runner ()
end
include Private_
let create_done_ ~res () : _ t = let create_done_ ~res () : _ t =
let id = Handle.generate_fresh () in let id = Handle.generate_fresh () in
{ {

View file

@ -31,6 +31,7 @@ module Private_ : sig
type any = Any : _ t -> any [@@unboxed] type any = Any : _ t -> any [@@unboxed]
val get_cur : unit -> any option val get_cur : unit -> any option
val create : runner:Runner.t -> unit -> 'a t
end end
(**/**) (**/**)