Parent

Files

Class/Module Index [+]

Quicksearch

Concurrent::Edge::Channel

@note proof of concept

Public Class Methods

new() click to toggle source

TODO make lock free

# File lib/concurrent/edge/future.rb, line 1377
def initialize
  super
  @ProbeSet = Concurrent::Channel::WaitableList.new
  ensure_ivar_visibility!
end

Public Instance Methods

inspect() click to toggle source
# File lib/concurrent/edge/future.rb, line 1401
def inspect
  to_s
end
pop() click to toggle source
# File lib/concurrent/edge/future.rb, line 1392
def pop
  select(Concurrent.future)
end
probe_set_size() click to toggle source
# File lib/concurrent/edge/future.rb, line 1383
def probe_set_size
  @ProbeSet.size
end
push(value) click to toggle source
# File lib/concurrent/edge/future.rb, line 1387
def push(value)
  until @ProbeSet.take.try_success([value, self])
  end
end
select(probe) click to toggle source
# File lib/concurrent/edge/future.rb, line 1396
def select(probe)
  @ProbeSet.put(probe)
  probe
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.