Sha256: 2e9f729dcb771cc6d3386ed12f02fc9a9303aa8bd8fa3dff04b0db72eb0d9159

Contents?: true

Size: 791 Bytes

Versions: 12

Compression:

Stored size: 791 Bytes

Contents

require 'rubygems'
require 'test/unit'

require File.dirname(__FILE__) + "/../lib/mailbox"

class Player
  include Mailbox

  def initialize(sound, send_channel, recieve_channel)
    @sound = sound
    @send_channel = send_channel
    register_channel :recieve_channel, recieve_channel
  end

  mailslot :channel => :recieve_channel
  def play(last_move)
    p "Thread [#{Thread.current.object_id}] - #{@sound} for #{last_move}"
    @send_channel.publish @sound
  end

end

class PingPongExample < Test::Unit::TestCase

  def test_ping_pong
    ping_channel = JRL::Channel.new
    pong_channel = JRL::Channel.new

    pinger = Player.new "ping", ping_channel, pong_channel
    ponger = Player.new "pong", pong_channel, ping_channel

    ping_channel.publish "ping"
    sleep 0.001
  end

end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
mailbox-0.2.7 example/ping_pong_example.rb
mailbox-0.2.6 example/ping_pong_example.rb
mailbox-0.2.5 example/ping_pong_example.rb
mailbox-0.2.4 example/ping_pong_example.rb
mailbox-0.2.3 example/ping_pong_example.rb
mailbox-0.2.2 example/ping_pong_example.rb
mailbox-0.2.1 example/ping_pong_example.rb
mailbox-0.2.0 example/ping_pong_example.rb
mailbox-0.1.7 example/ping_pong_example.rb
mailbox-0.1.6 example/ping_pong_example.rb
mailbox-0.1.4 example/ping_pong_example.rb
mailbox-0.1.3 example/ping_pong_example.rb