class Hamster::Splitter::Right

@private

Public Class Methods

new(splitter, mutex) click to toggle source
Calls superclass method Hamster::Realizable.new
# File lib/hamster/list.rb, line 1539
def initialize(splitter, mutex)
  super()
  @splitter, @mutex = splitter, mutex
end

Public Instance Methods

realize() click to toggle source
# File lib/hamster/list.rb, line 1544
def realize
  mutex = @mutex
  mutex && mutex.synchronize do
    return if @head != Undefined
    @splitter.next_item until @splitter.done?
    if @splitter.right.empty?
      @head, @size, @tail = nil, 0, self
    else
      @head, @tail = @splitter.right.head, @splitter.right.tail
    end
    @splitter, @mutex = nil, nil
  end
end