Module: Concurrent::Channel

Defined in:
lib/concurrent/channel/channel.rb,
lib/concurrent/channel/ring_buffer.rb,
lib/concurrent/channel/waitable_list.rb,
lib/concurrent/channel/buffered_channel.rb,
lib/concurrent/channel/unbuffered_channel.rb,
lib/concurrent/channel/blocking_ring_buffer.rb

Defined Under Namespace

Classes: BlockingRingBuffer, BufferedChannel, RingBuffer, UnbufferedChannel, WaitableList

Constant Summary collapse

Probe =
IVar

Class Method Summary collapse

Class Method Details

.select(*channels) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/concurrent/channel/channel.rb', line 11

def self.select(*channels)
  probe = Probe.new
  channels.each { |channel| channel.select(probe) }
  result = probe.value
  channels.each { |channel| channel.remove_probe(probe) }
  result
end