mirror of
https://github.com/c-cube/moonpool.git
synced 2025-12-06 11:15:38 -05:00
fib: expose Fiber.Private_.create
This commit is contained in:
parent
82cfe5413e
commit
d4476f7f31
2 changed files with 18 additions and 13 deletions
|
|
@ -40,23 +40,27 @@ 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
|
||||||
|
|
||||||
|
let create_ ~ls ~runner () : 'a t =
|
||||||
|
let id = Handle.generate_fresh () in
|
||||||
|
let res, _promise = Fut.make () in
|
||||||
|
{
|
||||||
|
state =
|
||||||
|
A.make
|
||||||
|
@@ Alive
|
||||||
|
{ children = FM.empty; on_cancel = Int_map.empty; cancel_id = 0 };
|
||||||
|
id;
|
||||||
|
res;
|
||||||
|
runner;
|
||||||
|
ls;
|
||||||
|
}
|
||||||
|
|
||||||
|
let create ~runner () : _ t =
|
||||||
|
create_ ~ls:(Task_local_storage.Direct.create ()) ~runner ()
|
||||||
end
|
end
|
||||||
|
|
||||||
include Private_
|
include Private_
|
||||||
|
|
||||||
let create_ ~ls ~runner () : 'a t =
|
|
||||||
let id = Handle.generate_fresh () in
|
|
||||||
let res, _promise = Fut.make () in
|
|
||||||
{
|
|
||||||
state =
|
|
||||||
A.make
|
|
||||||
@@ Alive { children = FM.empty; on_cancel = Int_map.empty; cancel_id = 0 };
|
|
||||||
id;
|
|
||||||
res;
|
|
||||||
runner;
|
|
||||||
ls;
|
|
||||||
}
|
|
||||||
|
|
||||||
let create_done_ ~res () : _ t =
|
let create_done_ ~res () : _ t =
|
||||||
let id = Handle.generate_fresh () in
|
let id = Handle.generate_fresh () in
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
(**/**)
|
(**/**)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue