Sha256: 4dcb1bb8d07369dc81e6c3692e8fdcbcac07d45aedaa3af6673b57e89a76db93

Contents?: true

Size: 517 Bytes

Versions: 6

Compression:

Stored size: 517 Bytes

Contents

require 'thread/promise'

describe Thread::Promise do
	it 'delivers a value properly' do
		p = Thread.promise

		Thread.new {
			sleep 0.02

			p << 42
		}

		expect(p.value).to eq(42)
	end

	it 'properly checks if anything has been delivered' do
		p = Thread.promise

		Thread.new {
			sleep 0.02

			p << 42
		}

		expect(p.delivered?).to be(false)
		sleep 0.03
		expect(p.delivered?).to be(true)
	end

	it 'does not block when a timeout is passed' do
		p = Thread.promise

		expect(p.value(0)).to be(nil)
	end
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
thread-0.2.2 spec/thread/promise_spec.rb
thread-0.2.1 spec/thread/promise_spec.rb
seekingalpha_thread-1.0.1 spec/thread/promise_spec.rb
thread-0.2.0 spec/thread/promise_spec.rb
thread-0.1.7 spec/thread/promise_spec.rb
thread-0.1.6 spec/thread/promise_spec.rb