Channel

Definitions

def buffered(rc: Region[r], n: Int32): (Sender[t, r], Receiver[t, r]) \ rSource
def recv(receiver: Receiver[t, r]): t \ rSource

Receives a message from the given channel r.

Blocks until a message is dequeued.

def send(m: t, sender: Sender[t, r]): Unit \ rSource

Sends the message m on the given channel s.

Blocks until the message is enqueued.

def timeout(rc: Region[r], d: Duration): Receiver[Unit, r] \ IOSource

Returns a channel that receives the Unit message after duration d.

def unbuffered(rc: Region[r]): (Sender[t, r], Receiver[t, r]) \ rSource

Returns a new unbuffered channel (i.e. a channel with zero capacity).

def unsafeSend(m: t, sender: Sender[t, r]): Unit \ rSource

Sends the message m on the given channel s.

Blocks until the message is enqueued.

Identical to send but doesn't require Sendable. It is up to programmer to ensure that race conditions cannot arise due to concurrent access to m.