Sha256: 6ed4832a7241b8943579a571320dccaac92023ac6c466988f2dbb1205448b4e8
Contents?: true
Size: 1.01 KB
Versions: 12
Compression:
Stored size: 1.01 KB
Contents
require 'rubygems' require 'test/unit' require File.dirname(__FILE__) + "/../lib/mailbox" class ICanHasCheeseBurger include Mailbox def initialize(channel) register_channel :request_channel, channel end mailslot :channel => :request_channel, :replyable => true def can_you_has? return "ya you can has!" end end class ICanHasCheeseBurgerExample < Test::Unit::TestCase def test_cheeseburgerz i_can_has_channel = org.jetlang.channels.MemoryRequestChannel.new i_can_has_cheeseburger = ICanHasCheeseBurger.new(i_can_has_channel) sync_executor = org.jetlang.core.SynchronousDisposingExecutor.new sync_fiber = org.jetlang.fibers.ThreadFiber.new(sync_executor, nil, false) question = "can i has?" puts question latch = JRL::Concurrent::Latch.new(1) answer = "no response!" org.jetlang.channels.AsyncRequest.with_one_reply(sync_fiber, i_can_has_channel, question) do |message| answer = message latch.count_down end latch.await(1) puts answer end end
Version data entries
12 entries across 12 versions & 1 rubygems