class Channel(T)
- Channel(T)
- Reference
- Object
Overview
A Channel
enables concurrent communication between fibers.
They allow communicating data between fibers without sharing memory and without having to worry about locks, semaphores or other special structures.
channel = Channel(Int32).new
spawn do
channel.send(0)
channel.send(1)
end
channel.receive # => 0
channel.receive # => 1
NOTE Although a Channel(Nil)
or any other nilable types like Channel(Int32?)
are valid
they are discouraged since from certain methods or constructs it receiving a nil
as data
will be indistinguishable from a closed channel.
Defined in:
lib/concurrency_util.crInstance Method Summary
- #|(other : Channel(K)) : Channel(T | K) forall K
- #partition(&predicate : T -> Bool) : Tuple(Channel(T), Channel(T))