package fuseau

  1. Overview
  2. Docs

Source file fuseau.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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
(** {2 Foundations} *)

module Fiber = Fiber
module Fiber_handle = Fiber_handle
module Main = Main
module FLS = FLS
module Event = Event

type 'ret branch = 'ret Event.branch =
  | When : 'a Event.t * ('a -> 'ret) -> 'ret branch

let select = Event.select

(** {2 IO event loop} *)

exception Inactive = Scheduler.Inactive

module Scheduler = Scheduler
module Event_loop = Event_loop

(** {2 Resource management *)

module Resource_pool = Resource_pool
module Buf_pool = Buf_pool
module Cancel_handle = Cancel_handle

(** {2 Utils} *)

module Exn_bt = Exn_bt
module Time = Time

(** {2 Synchronization} *)

module Chan = Chan

(** {2 IO} *)

module Iostream = Iostream

(** {2 Sleep} *)

module Sleep = Sleep

(** {2 Re-exports} *)

exception Timeout = Utils_.Timeout
(** Exception used for cancellation caused by timeout *)

let await = Fiber.await
let try_await = Fiber.try_await
let cancel_after_s = Utils_.cancel_after_s
let with_cancel_callback = Fiber.with_cancel_callback
let yield = Fiber.yield
let spawn = Scheduler.spawn
let spawn_from_anywhere = Scheduler.spawn_from_anywhere
let spawn_as_child_of = Scheduler.spawn_as_child_of
let schedule_micro_task = Scheduler.schedule_micro_task
let main = Main.main
let sleep_s = Sleep.sleep_s
let ev_timeout = Sleep.ev_deadline
let ev_deadline = Sleep.ev_deadline
let get_scheduler = Utils_.get_sched "get_scheduler"

module Private_ = struct
  module TLS = Common_.TLS

  let suspend = Fiber.suspend
end