package eio
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
Effect-based direct-style IO API for OCaml
Install
dune-project
Dependency
Authors
Maintainers
Sources
eio-1.4.tbz
sha256=ba11ad486f492130dbb486f2b3bdc4905643f10016806ddf86e9a34e4346aaa5
sha512=57ef2c137ccdc26d8029e636b6a4ee92da7c6b2f35954946bd56ca595d6947a8ec42f6f83f8552f73d6719e6ce2314cae2e2fad1686a387522935e6f90e9a8d9
doc/src/eio.core/single_waiter.ml.html
Source file single_waiter.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42type 'a state = | Running | Sleeping of (('a, exn) result -> unit) type 'a t = 'a state ref let create () = ref Running let wake t v = match !t with | Running -> false | Sleeping fn -> t := Running; fn v; true let wake_if_sleeping t = ignore (wake t (Ok ()) : bool) let await t op id = let x = Suspend.enter op @@ fun ctx enqueue -> Cancel.Fiber_context.set_cancel_fn ctx (fun ex -> t := Running; enqueue (Error ex) ); t := Sleeping (fun x -> Cancel.Fiber_context.clear_cancel_fn ctx; t := Running; enqueue x ) in Trace.get id; x let await_protect t op id = let x = Suspend.enter_unchecked op @@ fun _ctx enqueue -> t := Sleeping (fun x -> t := Running; enqueue x) in Trace.get id; x
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>