Sha256: ce49f7ea86585032d6628689c6b3814d0a0f15ed33e2a3583c989d5f22bf7913
Contents?: true
Size: 916 Bytes
Versions: 18
Compression:
Stored size: 916 Bytes
Contents
# frozen_string_literal: true # encoding: utf-8 require 'lite_spec_helper' describe Mongo::Semaphore do let(:semaphore) do described_class.new end it 'waits until signaled' do consumer = Thread.new do 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 end it 'waits until broadcast' do consumer = Thread.new do 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 end it 'times out' do consumer = Thread.new do 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 end end
Version data entries
18 entries across 18 versions & 1 rubygems