Source file await_sync.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
(** Basic synchronization primitives using [Await]. *)

include Await_sync_intf

(** Synchronization primitives which use {!Sync.t} *)
module Sync = struct
  module Mutex = Mutex.Sync
  module Rwlock = Rwlock.Sync
  module Lazy = Lazy.Sync
end

(** Synchronization primitives which use {!Await.t} *)
module Await = struct
  module Atom = Atom
  module Awaitable = Awaitable
  module Barrier = Barrier
  module Countdown_latch = Countdown_latch
  module Ivar = Ivar
  module Lazy = Lazy.Await
  module Mutex = Mutex.Await
  module Bounded_spsc_queue = Bounded_spsc_queue
  module Mpmc_queue = Mpmc_queue
  module Mvar = Mvar
  module Rwlock = Rwlock.Await
  module Scope = Scope
  module Semaphore = Semaphore
  module Stack = Stack
end

(**/**)

module Expert = struct
  module Lazy = struct
    module type S = Lazy.S

    include Lazy.Expert
  end

  module Parking_lot = Parking_lot
end