Sha256: 112205e51c2226020d0165593095fa95b2404b49d5a063da82c6662ed314ed13
Contents?: true
Size: 1.02 KB
Versions: 9
Compression:
Stored size: 1.02 KB
Contents
require 'lite_spec_helper' describe Mongo::DistinguishingSemaphore do let(:semaphore) do described_class.new end it 'waits until signaled' do result = nil consumer = Thread.new do result = semaphore.wait(3) end # Context switch to start the thread sleep 0.1 start_time = Time.now semaphore.signal consumer.join (Time.now - start_time).should < 1 result.should be true end it 'waits until broadcast' do result = nil consumer = Thread.new do result = semaphore.wait(3) end # Context switch to start the thread sleep 0.1 start_time = Time.now semaphore.broadcast consumer.join (Time.now - start_time).should < 1 result.should be true end it 'times out' do result = nil consumer = Thread.new do result = semaphore.wait(2) end # Context switch to start the thread sleep 0.1 start_time = Time.now consumer.join (Time.now - start_time).should > 1 result.should be false end end
Version data entries
9 entries across 9 versions & 1 rubygems