Sha256: 64aad2865ae62d3e2610a7fc745acbd998126625d991c78a17bdcdea47508af6

Contents?: true

Size: 564 Bytes

Versions: 1

Compression:

Stored size: 564 Bytes

Contents

require 'quack_concurrency'

RSpec.describe QuackConcurrency::Semaphore do
  
  describe "acquire" do
  
    context "when no permits are available" do
      it "should wait" do
        $test = []
        semaphore = QuackConcurrency::Semaphore.new(2)
        thread = Thread.new do
          sleep 1
          semaphore.acquire
          $test << 2
        end
        semaphore.acquire
        semaphore.acquire
        sleep 2
        $test << 1
        semaphore.release
        thread.join
        expect($test).to eql [1, 2]
      end
    end
    
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
quack_concurrency-0.2.0 spec/semaphore_spec.rb