package domainslib

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
type !'a t

The type of channels

val make_bounded : int -> 'a t

make_bounded n makes a bounded channel with a buffer of size n. Raises Invalid_argument "Chan.make_bounded" if the buffer size is less than 0.

With a buffer size of 0, the send operation becomes synchronous. With a buffer size of 1, you get the familiar MVar structure. The channel may be shared between many sending and receiving domains.

val make_unbounded : unit -> 'a t

Returns an unbounded channel

val send : 'a t -> 'a -> unit

send c v sends the values v over the channel c. If the channel buffer is full then the sending domain blocks until space becomes available.

val send_poll : 'a t -> 'a -> bool

send_poll c v attempts to send the value v over the channel c. If the channel buffer is not full, the message is sent and returns true. Otherwise, returns false.

val recv : 'a t -> 'a

recv c returns a value v received over the channel. If the channel buffer is empty then the domain blocks until a message is sent on the channel.

val recv_poll : 'a t -> 'a option

recv_poll c attempts to receive a message on the channel c. If a message v is available on the channel then Some v is returned. Otherwise, returns None.

OCaml

Innovation. Community. Security.