Skip to content

Instantly share code, notes, and snippets.

@lune-sta
Last active August 29, 2015 14:04
Show Gist options
  • Select an option

  • Save lune-sta/af26b011fae2ee694d92 to your computer and use it in GitHub Desktop.

Select an option

Save lune-sta/af26b011fae2ee694d92 to your computer and use it in GitHub Desktop.
#!/usr/bin/env ruby
# -*- coding: utf-8 -*
require_relative "../ixia"
def compile(job)
end
ps = (0..$master.processor_count).map do |i|
Place.new do
loop do
case job = $ref.put([:get_job]).get
when :done
break
else
job = compile(job)
msg = [:job_finished, job]
$ref.put(msg)
end
end
end
end
job_queue = Queue.new
ps.sync_each do |p|
loop do
m = p.get
case m[0]
when :get_job
begin
job = job_queue.pop(non_block=true)
rescue
p.put(:done)
break
end
p.put(job)
when :job_finished
job = m[1]
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment