Parent

Files

Class/Module Index [+]

Quicksearch

Concurrent::Edge::Channel

proof of concept

Public Class Methods

new() click to toggle source

TODO make lock free

# File lib/concurrent/edge/future.rb, line 1366
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 1390
def inspect
  to_s
end
pop() click to toggle source
# File lib/concurrent/edge/future.rb, line 1381
def pop
  select(Concurrent.future)
end
probe_set_size() click to toggle source
# File lib/concurrent/edge/future.rb, line 1372
def probe_set_size
  @ProbeSet.size
end
push(value) click to toggle source
# File lib/concurrent/edge/future.rb, line 1376
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 1385
def select(probe)
  @ProbeSet.put(probe)
  probe
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.