1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
require 'jruby/vm'
# create the VMs
vm1 = JRuby::VM.spawn("-e", "load 'samples/mvm_subvm.rb'")
vm2 = JRuby::VM.spawn("-e", "load 'samples/mvm_subvm.rb'")
vm1.start
vm2.start
# connect them to parent
vm1 << JRuby::VM_ID
vm2 << JRuby::VM_ID
# connect them together
vm1 << vm2.id
vm2 << vm1.id
# start them running
vm1 << 1
# let them run for a while, reading their progress
run = true
Thread.new { while run; puts JRuby::VM.get_message; end }
sleep 20
# shut them down
run = false
vm1 << 'done'
vm2 << 'done'
vm1.join
vm2.join
|