HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //usr/share/doc/ruby-concurrent/examples/stress_ruby_thread_pool.rb
#!/usr/bin/env ruby

$: << File.expand_path('../../lib', __FILE__)

require 'benchmark'
require 'concurrent/executors'

COUNT = 100_000

executor = Concurrent::CachedThreadPool.new
latch = Concurrent::CountDownLatch.new

COUNT.times { executor.post{ nil } }

#COUNT.times do |i|
#  executor.post{ nil }
#  sleep(0.01) if i % 1000 == 0
#end

executor.post{ latch.count_down }
latch.wait

puts "Max length:           #{executor.max_length}" if executor.respond_to?(:max_length)
puts "Largest length:       #{executor.largest_length}" if executor.respond_to?(:largest_length)
puts "Scheduled task count: #{executor.scheduled_task_count}" if executor.respond_to?(:scheduled_task_count)
puts "Completed task count: #{executor.completed_task_count}" if executor.respond_to?(:completed_task_count)