Module Exchanger

module Exchanger: sig .. end
Value exchangers.

type t 
The type of exchangers, allowing two threads to swap values.
val make : unit -> t
Returns a new exchanger.
val exchange : t -> 'a -> 'a
Waits for another thread to arrive at the same exchange point, and then swaps the values provided by the two threads.

Raises Runtime.Interrupted if the thread is interrupted.

val exchange_time : t -> 'a -> int64 -> TimeUnit.t -> 'a
exchange_time e x t u is similar to exchange e x, except that the current thread will at most wait for t (time value whose unit is u).

Raises Runtime.Interrupted if the thread is interrupted.

Raises Runtime.Timeout if time has elapsed with no exchange.