Sha256: cfcf53a22f094aeb942c7dae3a9729fa023288aa3b98a5faee071ee1cf37807a

Contents?: true

Size: 524 Bytes

Versions: 2

Compression:

Stored size: 524 Bytes

Contents

# frozen_string_literal: true

require 'bundler/setup'
require 'polyphony'

resource_count = 0
Pool = Polyphony::ResourcePool.new(limit: 3) do
  :"resource#{resource_count += 1}"
end

async def user(number)
  loop do
    # puts "user #{number} >"
    Pool.acquire do |r|
      puts "user #{number} #{r.inspect} >"
      sleep(0.05 + rand * 0.2)
      # STDOUT << '.'
      # puts "#{number}: #{r.inspect}"
    end
  end
end

100.times do |x|
  coproc user(x)
end

t0 = Time.now
every(10) { puts "uptime: #{Time.now - t0}" }

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
polyphony-0.19 examples/core/resource.rb
polyphony-0.17 examples/core/resource.rb