You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# fibers_test.rb
require 'bundler/inline'
gemfile do
source 'https://rubygems.org'
gem 'fiber_scheduler', '~> 0.13.0'
end
require 'net/http'
require 'fiber_scheduler'
require 'benchmark'
Benchmark.realtime do
Thread.new do # in this thread, we'll have non-blocking fibers
Fiber.set_scheduler(FiberScheduler.new)
(1..3).each do |user_id|
Fiber.schedule do
t = Time.now
Net::HTTP.get('reqres.in', "/api/users/#{user_id}?delay=2")
puts 'User %s: finished in %.3f' % [user_id, Time.now - t]
end
end
end.join
end
This is the result of running the script
$ ruby ./fibers_test.rb
#<Thread:0x00007fefaee35c60 ./fibers_test.rb:14 run> terminated with exception (report_on_exception is true):
/home/username/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/fiber_scheduler-0.13.0/lib/fiber_scheduler.rb:175:in `io_read': Failed to open TCP connection to reqres.in:80 (wrong number of arguments (given 4, expected 3)) (ArgumentError)
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:193:in `each'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:193:in `block (2 levels) in lazy_initialize'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:192:in `open'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:192:in `block in lazy_initialize'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:188:in `synchronize'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:188:in `lazy_initialize'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:236:in `each_address'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:116:in `block in each_address'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:115:in `each'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:115:in `each_address'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:102:in `getaddresses'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:51:in `getaddresses'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/fiber_scheduler-0.13.0/lib/fiber_scheduler.rb:164:in `address_resolve'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/net/http.rb:1271:in `initialize'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/net/http.rb:1271:in `open'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/net/http.rb:1271:in `block in connect'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/fiber_scheduler-0.13.0/lib/fiber_scheduler/timeouts.rb:55:in `timeout'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/fiber_scheduler-0.13.0/lib/fiber_scheduler.rb:188:in `timeout_after'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/timeout.rb:178:in `timeout'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/net/http.rb:1269:in `connect'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/net/http.rb:1248:in `do_start'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/net/http.rb:1237:in `start'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/net/http.rb:474:in `get_response'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/net/http.rb:461:in `get'
from ./fibers_test.rb:20:in `block (4 levels) in <main>'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/fiber_scheduler-0.13.0/lib/fiber_scheduler.rb:240:in `block in fiber'
/home/username/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/fiber_scheduler-0.13.0/lib/fiber_scheduler.rb:175:in `io_read': wrong number of arguments (given 4, expected 3) (ArgumentError)
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:193:in `each'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:193:in `block (2 levels) in lazy_initialize'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:192:in `open'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:192:in `block in lazy_initialize'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:188:in `synchronize'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:188:in `lazy_initialize'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:236:in `each_address'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:116:in `block in each_address'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:115:in `each'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:115:in `each_address'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:102:in `getaddresses'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:51:in `getaddresses'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/fiber_scheduler-0.13.0/lib/fiber_scheduler.rb:164:in `address_resolve'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/net/http.rb:1271:in `initialize'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/net/http.rb:1271:in `open'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/net/http.rb:1271:in `block in connect'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/fiber_scheduler-0.13.0/lib/fiber_scheduler/timeouts.rb:55:in `timeout'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/fiber_scheduler-0.13.0/lib/fiber_scheduler.rb:188:in `timeout_after'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/timeout.rb:178:in `timeout'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/net/http.rb:1269:in `connect'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/net/http.rb:1248:in `do_start'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/net/http.rb:1237:in `start'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/net/http.rb:474:in `get_response'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/net/http.rb:461:in `get'
from ./fibers_test.rb:20:in `block (4 levels) in <main>'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/fiber_scheduler-0.13.0/lib/fiber_scheduler.rb:240:in `block in fiber'
/home/username/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/fiber_scheduler-0.13.0/lib/fiber_scheduler.rb:175:in `io_read': Failed to open TCP connection to reqres.in:80 (wrong number of arguments (given 4, expected 3)) (ArgumentError)
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:193:in `each'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:193:in `block (2 levels) in lazy_initialize'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:192:in `open'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:192:in `block in lazy_initialize'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:188:in `synchronize'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:188:in `lazy_initialize'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:236:in `each_address'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:116:in `block in each_address'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:115:in `each'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:115:in `each_address'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:102:in `getaddresses'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:51:in `getaddresses'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/fiber_scheduler-0.13.0/lib/fiber_scheduler.rb:164:in `address_resolve'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/net/http.rb:1271:in `initialize'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/net/http.rb:1271:in `open'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/net/http.rb:1271:in `block in connect'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/fiber_scheduler-0.13.0/lib/fiber_scheduler/timeouts.rb:55:in `timeout'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/fiber_scheduler-0.13.0/lib/fiber_scheduler.rb:188:in `timeout_after'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/timeout.rb:178:in `timeout'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/net/http.rb:1269:in `connect'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/net/http.rb:1248:in `do_start'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/net/http.rb:1237:in `start'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/net/http.rb:474:in `get_response'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/net/http.rb:461:in `get'
from ./fibers_test.rb:20:in `block (4 levels) in <main>'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/fiber_scheduler-0.13.0/lib/fiber_scheduler.rb:240:in `block in fiber'
/home/username/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/fiber_scheduler-0.13.0/lib/fiber_scheduler.rb:175:in `io_read': wrong number of arguments (given 4, expected 3) (ArgumentError)
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:193:in `each'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:193:in `block (2 levels) in lazy_initialize'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:192:in `open'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:192:in `block in lazy_initialize'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:188:in `synchronize'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:188:in `lazy_initialize'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:236:in `each_address'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:116:in `block in each_address'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:115:in `each'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:115:in `each_address'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:102:in `getaddresses'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/resolv.rb:51:in `getaddresses'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/fiber_scheduler-0.13.0/lib/fiber_scheduler.rb:164:in `address_resolve'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/net/http.rb:1271:in `initialize'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/net/http.rb:1271:in `open'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/net/http.rb:1271:in `block in connect'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/fiber_scheduler-0.13.0/lib/fiber_scheduler/timeouts.rb:55:in `timeout'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/fiber_scheduler-0.13.0/lib/fiber_scheduler.rb:188:in `timeout_after'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/timeout.rb:178:in `timeout'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/net/http.rb:1269:in `connect'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/net/http.rb:1248:in `do_start'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/net/http.rb:1237:in `start'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/net/http.rb:474:in `get_response'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/3.2.0/net/http.rb:461:in `get'
from ./fibers_test.rb:20:in `block (4 levels) in <main>'
from /home/username/.asdf/installs/ruby/3.2.2/lib/ruby/gems/3.2.0/gems/fiber_scheduler-0.13.0/lib/fiber_scheduler.rb:240:in `block in fiber'
This is the result of running the script
The script works fine with
Async::Scheduler
fromasync-io
gemThe text was updated successfully, but these errors were encountered: