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 32 33 34 35
|
require "spec_helper"
if defined?(JRUBY_VERSION)
require "bunny/concurrent/linked_continuation_queue"
describe Bunny::Concurrent::LinkedContinuationQueue do
describe "#poll with a timeout that is never reached" do
it "blocks until the value is available, then returns it" do
# force subject evaluation
cq = subject
t = Thread.new do
cq.push(10)
end
t.abort_on_exception = true
v = subject.poll(500)
expect(v).to eq 10
end
end
describe "#poll with a timeout that is reached" do
it "raises an exception" do
# force subject evaluation
cq = subject
t = Thread.new do
sleep 1.5
cq.push(10)
end
t.abort_on_exception = true
expect { subject.poll(500) }.to raise_error(::Timeout::Error)
end
end
end
end
|