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-0.13.tbz
sha256=82537ee1c5b1829fde8207614a4e39f560bd582332841290ed5ef76691f3af70
sha512=69fc509e5ed34da64c3c26fa22558ce7f0cb42afa65c864c57dbb05948e12c0f4f6ab7b77a07f8b292ea3a18748ed46deb9da6af74852115da5e938177b3bf18
doc/src/eio.core/trace.ml.html
Source file trace.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(* Copyright (C) 2014, Thomas Leonard *) type id = int let id_chunk_size = 1024 let next_id_chunk = Atomic.make 0 let next_id_key = Domain.DLS.new_key (fun () -> Atomic.fetch_and_add next_id_chunk id_chunk_size) let mint_id () = let next_id_local = Domain.DLS.get next_id_key in let next_id_local_succ = if ((next_id_local + 1) mod id_chunk_size) = 0 then (* we're out of local IDs *) Atomic.fetch_and_add next_id_chunk id_chunk_size else next_id_local + 1 in Domain.DLS.set next_id_key next_id_local_succ; next_id_local module RE = Eio_runtime_events let add_event = Runtime_events.User.write let create ?label id ty = add_event RE.create (id, ty); Option.iter (fun l -> add_event RE.name (id, l)) label let log = add_event RE.log let fiber = add_event RE.fiber let suspend = add_event RE.suspend let try_read = add_event RE.try_read let read = add_event RE.read let signal = add_event RE.signal let resolve = add_event RE.resolve let resolve_error id ex = add_event RE.resolve_error (id, ex)
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>