package riot

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

Install

dune-project
 Dependency

Authors

Maintainers

Sources

riot-0.0.3.tbz
sha256=6201ce27997ec1c4b4509782c6be2fa2bf102b804b11dcbf9ebdb49a123c19c3
sha512=ad70a67601a892700e461efe57484d109b1d08e30d15464ad8611e71dd568c934d3f948afd645e096e4f97ad1935aaeaf5d9b6d9d59c52a82eeb5c4995421646

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.