package riot

  1. Overview
  2. Docs
An actor-model multi-core scheduler for OCaml 5

Install

Dune Dependency

Authors

Maintainers

Sources

riot-0.0.4.tbz
sha256=bd196369f74bbc42f23d262030d5fa04c03f5f00c46bf944f0dcbc193745976f
sha512=f1ca69e05b57e83a1bd173efe51b745d331355a83381e6068743a7626e45dcf515cdd8947180051bddfe9f5727c2732aa0f01a093b04cf33fa4081d32f24fd65

doc/src/riot.lib/telemetry_app.ml.html

Source file telemetry_app.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
open Runtime

type event = Telemetry.event = ..

let name = "Riot.Telemetry"

module Dispatcher = struct
  type Message.t += Event of Telemetry.event [@@unboxed]

  let __main_dispatcher__ : Pid.t ref = ref Pid.zero

  let rec loop () =
    match receive () with
    | Event e ->
        Telemetry.emit e;
        loop ()
    | _ -> loop ()

  let start_link () =
    let pid = spawn_link (fun () -> loop ()) in
    __main_dispatcher__ := pid;
    Ok pid

  let emit ev = send !__main_dispatcher__ (Event ev)
end

let start () = Dispatcher.start_link ()
let emit = Dispatcher.emit
let attach = Telemetry.attach
OCaml

Innovation. Community. Security.