class Kudzu::Adapter::Memory::Frontier
Public Class Methods
new(uuid)
click to toggle source
# File lib/kudzu/adapter/memory/frontier.rb, line 5 def initialize(uuid) @uuid = uuid @monitor = Monitor.new @queue = [] @queued = {} end
Public Instance Methods
clear()
click to toggle source
# File lib/kudzu/adapter/memory/frontier.rb, line 31 def clear @queue.clear @queued.clear end
dequeue(limit: 1)
click to toggle source
# File lib/kudzu/adapter/memory/frontier.rb, line 22 def dequeue(limit: 1) @monitor.synchronize do links = @queue.shift(limit) links.each do |link| link.state = 1 end end end
enqueue(links)
click to toggle source
# File lib/kudzu/adapter/memory/frontier.rb, line 12 def enqueue(links) @monitor.synchronize do Array(links).each do |link| next if @queued.key?(link.url) @queued[link.url] = true @queue << link end end end