Is Concurrent Ruby Better?

October 23rd, 2007

Code with The Omnibus Concurrency Library

require 'concurrent/actors'
include Concurrent::Actors

Message = Struct.new :ping, :pong

ping_thread = Actor.spawn do
  loop do
    Actor.receive do |f|
      f.when Message do |m|
        puts "PING" 
        sleep(1)
        m.pong << Message.new(m.ping, m.pong)
      end
    end
  end
end

pong_thread = Actor.spawn do
  loop do
    Actor.receive do |f|
      f.when Message do |m|
        puts "PONG" 
        sleep(1)
        m.ping << Message.new(m.ping, m.pong)
      end
    end
  end
end

ping_thread << Message.new(ping_thread, pong_thread)
while(true)
  puts("WAITING...")
  sleep(5)
end

Also, it runs…forever.

3 Responses to “Is Concurrent Ruby Better?”

  1. http://r-watche.info/replica-watches/bell&ross-replica-watch.html Says:
    http://r-watche.info/replica-watches/bell&ross-replica-watch.html
  2. http://christmas-super.info/christmas-tree/decorations-christmas-tree-trends.html Says:
    http://christmas-super.info/christmas-tree/decorations-christmas-tree-trends.html
  3. http://bag-cases.info/replica-handbags/beijo-replica-handbags-wholesale.php Says:
    http://bag-cases.info/replica-handbags/beijo-replica-handbags-wholesale.php

Leave a Reply